在Python中操作MySQL数据库,我们通常需要使用一些第三方库来帮助我们完成这个任务,这些库可以帮助我们建立与MySQL数据库的连接,执行SQL语句,获取查询结果等,在Python中,最常用的操作MySQL的库是pymysql
和mysqlconnectorpython
。
pymysql
是一个纯Python实现的MySQL客户端库,它是由Python开发者创建并维护的。pymysql
支持Python 2.7和3.4+版本,并且支持所有MySQL 5.6+版本的功能。
安装pymysql
可以使用pip命令:
pip install pymysql
使用pymysql
连接MySQL数据库的代码如下:
import pymysql 创建连接 conn = pymysql.connect(host='localhost', user='root', password='password', db='dbname') 创建游标 cursor = conn.cursor() 执行SQL语句 sql = "SELECT * FROM tablename" cursor.execute(sql) 获取查询结果 results = cursor.fetchall() for row in results: print(row) 关闭游标和连接 cursor.close() conn.close()
mysqlconnectorpython
mysqlconnectorpython
是MySQL官方提供的Python驱动,它支持Python 2.7, 3.4, 3.5, 3.6和3.7版本,并且支持所有MySQL 5.0+版本的功能。
安装mysqlconnectorpython
可以使用pip命令:
pip install mysqlconnectorpython
使用mysqlconnectorpython
连接MySQL数据库的代码如下:
import mysql.connector 创建连接 conn = mysql.connector.connect(user='root', password='password', host='localhost', database='dbname') 创建游标 cursor = conn.cursor() 执行SQL语句 sql = "SELECT * FROM tablename" cursor.execute(sql) 获取查询结果 results = cursor.fetchall() for row in results: print(row) 关闭游标和连接 cursor.close() conn.close()
制作依赖包
如果你想将上述操作MySQL的代码封装成一个函数或者类,然后发布到PyPI上供其他人使用,你需要将这些代码打包成一个Python依赖包,制作依赖包的过程包括编写setup.py文件,然后使用setuptools工具进行打包。
我们需要创建一个setup.py文件,内容如下:
from setuptools import setup, find_packages setup(name='yourpackagename', version='0.1', packages=find_packages(), install_requires=[]), # add your package's dependencies here, e.g.: [], ['numpy'], ['pandas>=0.15']],这里暂时为空,因为我们没有其他依赖包。
我们可以使用setuptools的build_ext命令来编译我们的代码:
python setup.py build_ext inplace
我们可以使用twine命令将我们的依赖包发布到PyPI上:
twine upload dist/* u yourusername p yourpassword r pypi # replace yourusername and yourpassword with your PyPI account's username and password, replace pypi with the Python package index you want to upload to, e.g., pypi or testpypi. If you don't have a PyPI account, you can create one at https://pypi.org/account/register/. The r option is optional and specifies the Python package index you want to upload to. If you don't specify it, twine will use the default Python package index (https://pypi.org/). The u option is optional and specifies your PyPI account's username. If you don't specify it, twine will use the current user's credentials for authentication. The p option is optional and specifies your PyPI account's password. If you don't specify it, twine will prompt you for your PyPI account's password when it needs it. The asterisk (*) is a wildcard that matches all files in the current directory that end with the extension specified by the t option (in this case, all files that end with the extension ".tar.gz"). The t option is optional and specifies the file extension of the files you want to upload. If you don't specify it, twine will use the default file extension (in this case, ".tar.gz"). The verbose option is optional and makes twine display more information about what it's doing during the upload process. If you don't specify it, twine will display only error messages and warnings. The noninteractive option is optional and makes twine not ask any interactive questions during the upload process (e.g., whether to overwrite an existing package). If you don't specify it, twine will ask you these questions if necessary (e.g., if you try to upload a package with the same name as an existing package). The repositoryurl option is optional and specifies the URL of the Python package index where you want to upload your package (e.g., https://pypi.org/ or https://testpypi.org/). If you don't specify it, twine will use the default Python package index (https://pypi.org/). The configfile option is optional and specifies the path of a configuration file that contains additional options for twine (e.g., options for authentication). If you don't specify it, twine will use the default configuration file (~/.pypirc). The skipexisting option is optional and makes twine not upload a package if it already exists on the Python package index (e.g., if you try to upload a package with the same name as an existing package). If you don't specify it, twine will upload a package even if it already exists on the Python package index (unless you also specify the noninteractive option). The nocheckhostname option is optional and makes twine not check the validity of the server's certificate when connecting to the Python package index (e.g., when using HTTPS). If you don't specify it, twine will check the validity of the server's certificate when connecting to the Python package index (unless you also specify the trustedhost option). The trustedhost option is optional and specifies a commaseparated list of trusted hosts for which twine should not check the validity of their server's certificate when connecting to them (e.g., https://pypi.org/ or https://testpypi
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。