大淘客cms建站教程,wordpress hook 列表,上海网站设计大概要多少钱,wordpress 跳过ftp大家好#xff0c;我是水滴~~
当涉及到使用 Python 操作 MySQL 数据库时#xff0c;mysql-connector-python 库是一个强大而常用的选择。该库提供了与 MySQL 数据库的交互功能#xff0c;使您能够执行各种数据库操作#xff0c;如连接数据库、执行查询和插入数据等。在本文… 大家好我是水滴~~
当涉及到使用 Python 操作 MySQL 数据库时mysql-connector-python 库是一个强大而常用的选择。该库提供了与 MySQL 数据库的交互功能使您能够执行各种数据库操作如连接数据库、执行查询和插入数据等。在本文中我们将介绍如何使用 mysql-connector-python 库来操作 MySQL 数据库。
文章内容包含大量的示例代码希望能够帮助新手同学快速入门。 《Python入门核心技术》专栏总目录・点这里 文章目录 前言一、连接器的版本二、安装 mysql-connector-python 库三、连接 MySQL 数据库3.1 创建一个连接3.2 使用字典定义连接参数3.3 从配置文件中获取连接信息3.4 捕获连接异常 四、执行 SQL 查询4.1 查询并返回多条数据元组列表4.2 查询并返回一条数据元组4.3 查询时传递参数 五、执行 SQL 插入、更新和删除操作六、支持事务七、支持连接池总结 前言 MySQL Connector/Python 是一个用于在 Python 和 MySQL 数据库之间进行交互的官方 MySQL 驱动程序。它提供了一个简单而强大的接口使开发人员能够轻松地连接到 MySQL 数据库并执行查询、插入、更新和删除等操作。 以下是 MySQL Connector/Python 库的一些关键特点和功能 官方支持MySQL Connector/Python 是由 MySQL 官方团队开发和维护的因此它与 MySQL 数据库的兼容性非常好。它遵循最新的 MySQL 协议并与 MySQL 服务器紧密集成。简单易用MySQL Connector/Python 提供了一个直观而简单的 API使开发人员能够轻松地连接到数据库、执行查询和修改数据。它提供了一组简洁的方法和函数使数据库操作变得简单而直观。支持事务MySQL Connector/Python 支持事务允许您在多个数据库操作之间维护一致性。您可以开始一个事务、执行一系列操作并在需要时提交或回滚事务。支持预处理语句MySQL Connector/Python 支持预处理语句可以提高执行相同查询多次的效率。通过使用预处理语句您可以预先准备查询并多次执行而不必每次都重新解析和编译查询。支持连接池MySQL Connector/Python 支持连接池允许您在应用程序中管理和重用数据库连接。连接池可以提高性能和可伸缩性特别是在高并发环境下。SSL/TLS 加密支持MySQL Connector/Python 支持通过 SSL/TLS 使用加密连接连接到 MySQL 服务器。这提供了对数据传输的安全保护尤其在通过公共网络连接到数据库时非常重要。跨平台支持MySQL Connector/Python 可在多个平台上运行包括 Windows、Linux 和 macOS。这使得它成为开发人员在不同环境中构建和部署 Python 应用程序时的理想选择。 总之MySQL Connector/Python 是一个功能强大且易于使用的库用于在 Python 和 MySQL 数据库之间进行交互。它提供了广泛的功能和选项使开发人员能够灵活地连接、查询和修改 MySQL 数据库从而构建出高效和可靠的应用程序。无论是简单的查询还是复杂的数据库操作MySQL Connector/Python 都是一个值得考虑的工具。
下面是相关链接
项目链接官方指南https://dev.mysql.com/doc/connector-python/PyPI 地址https://pypi.org/project/mysql-connector-python/
一、连接器的版本 在安装 MySQL 连接器之前需要先确定安装的版本如果你的 MySQL 版本在 5.6 及以上可以直接安装最新版本的连接器。 下表总结了连接器 与 MySQL、Python的版本对照表
连接器版本MySQL 版本Python 版本8.x8.1, 8.0, 5.7, 5.63.12 (8.2.0), 3.11, 3.10, 3.9, 3.88.08.0, 5.7, 5.6, 5.53.11, 3.10, 3.9, 3.8, 3.7, (在 8.0.29 之前的 3.6), ( 在 8.0.24 之前的 2.7 和 3.5)2.2 (后续为 8.0)5.7, 5.6, 5.53.5, 3.4, 2.72.15.7, 5.6, 5.53.5, 3.4, 2.7, 2.62.05.7, 5.6, 5.53.5, 3.4, 2.7, 2.61.25.7, 5.6, 5.5 (5.1, 5.0, 4.1)3.4, 3.3, 3.2, 3.1, 2.7, 2.6
二、安装 mysql-connector-python 库 在使用之前需要先安装 mysql-connector-python 库下面列出一些常用的 pip 命令。 安装最新版本
pip install mysql-connector-python安装到指定版本
pip install mysql-connector-python8.0.26请注意确保指定的版本在PyPIPython软件包索引上可用。你可以在PyPI网站上搜索mysql-connector-python来查找可用的版本列表。 升级到最新版本
pip install mysql-connector-python --upgrade升级到指定版本
pip install mysql-connector-python8.0.26 --upgrade三、连接 MySQL 数据库 使用 mysql-connector-python 库连接 MySQL 数据库需要使用 connect() 函数该函数会创建与 MySQL 服务器的连接并返回一个 MySQLConnection对象。 3.1 创建一个连接
以下示例展示了如何连接到 MySQL 服务器
import mysql.connector# 连接 MySQL
cnx mysql.connector.connect(hostyour_host,useryour_username,passwordyour_password,databaseyour_database
)# 关闭连接
cnx.close()在上述代码中host 表示数据库主机地址user 表示用户名password 表示密码database 表示要连接的数据库名称。
3.2 使用字典定义连接参数
也可以将连接参数封装到字典中然后以这个字典传递参数
import mysql.connector# 将连接信息存入字典中
conn_params {host: your_host,user: your_username,password: your_password,database: your_database
}# 使用 ** 运算符传递字典参数
cnx mysql.connector.connect(**conn_params)# 关闭连接
cnx.close()3.3 从配置文件中获取连接信息 在生产环境中通常是将连接信息写在配置文件中的需要从配置文件中获取然后连接 MySQL。 创建一个配置文件例如config.ini其中包含MySQL数据库的连接参数。配置文件的示例内容如下
[mysql]
host your_host
user your_username
password your_password
database your_database使用configparser模块来解析配置文件并获取连接参数。以下是示例代码
import configparser
import mysql.connector# 创建配置解析器对象
config configparser.ConfigParser()
# 读取配置文件
config.read(config.ini)# 从配置文件中获取连接参数并封装至字典中
conn_params {host: config.get(mysql, host),user: config.get(mysql, user),password: config.get(mysql, password),database: config.get(mysql, database)
}# 连接到MySQL数据库
cnx mysql.connector.connect(**conn_params)# 关闭连接
cnx.close()3.4 捕获连接异常
在连接数据库时也可能因为意外而发生异常我们需要捕获它
import mysql.connector
from mysql.connector import errorcodetry:# 连接 MySQL 数据库cnx mysql.connector.connect(hostyour_host,useryour_username,passwordyour_password,databaseyour_database)# 捕获异常
except mysql.connector.Error as err:if err.errno errorcode.ER_ACCESS_DENIED_ERROR:print(账号或密码错误)elif err.errno errorcode.ER_BAD_DB_ERROR:print(数据库不存在)else:print(err)
else:# 关闭连接cnx.close() 获取更多连接参数请参见官网https://dev.mysql.com/doc/connector-python/en/connector-python-connectargs.html 四、执行 SQL 查询 连接成功后可以使用 cursor() 函数获取游标对象然后使用游标对象执行 SQL 查询。 4.1 查询并返回多条数据元组列表
下面示例将演示如何执行查询语句并将查询结果放到列表中代码如下
import mysql.connector# 获取连接
cnx mysql.connector.connect(hostyour_host,useryour_username,passwordyour_password,databaseyour_database
)# 获取游标
cursor cnx.cursor()# 执行查询
cursor.execute(SELECT * FROM oss_file)# 将查询结果放到列表中
rows cursor.fetchall()# 遍历查询结果
for row in rows:print(row)# 关闭游标和连接
cursor.close()
cnx.close()在上述代码中execute() 函数用于执行 SQL 查询fetchall() 函数用于获取查询结果集其返回值为列表列表中存储的是元组每个元组就是一条数据。
4.2 查询并返回一条数据元组
下面示例将演示如何执行查询语句并返回一条查询结果代码如下
import mysql.connector# 获取连接
cnx mysql.connector.connect(hostyour_host,useryour_username,passwordyour_password,databaseyour_database
)# 获取游标
cursor cnx.cursor()# 执行查询
cursor.execute(SELECT * FROM oss_file limit 1)# 获取查询结果
row cursor.fetchone()
print(row)# 关闭游标和连接
cursor.close()
cnx.close()在上述代码中execute() 函数用于执行 SQL 查询fetchone() 函数用于获取一条查询结果其返回值为元组。
4.3 查询时传递参数
执行查询时也可以进行参数传递可以将参数组织为元组或列表并将其作为execute()方法的第二个参数传递。以下是一个示例
import mysql.connector# 获取连接
cnx mysql.connector.connect(hostyour_host,useryour_username,passwordyour_password,databaseyour_database
)# 获取游标
cursor cnx.cursor()# 查询参数参数可以是元组或列表
params (app/, 1)
# 执行查询
cursor.execute(SELECT * FROM oss_file where prefix %s and status %s, paramsparams)# 将查询结果放到列表中
rows cursor.fetchall()# 遍历查询结果
for row in rows:print(row)# 关闭游标和连接
cursor.close()
cnx.close()上述示例中传递了两个参数而SQL中使用 %s 作为点位符表示参数的位置 。在SQL查询语句中%s占位符通常是按照出现的顺序进行参数替换的。当你在查询语句中使用多个%s占位符时传递给数据库驱动程序的参数值应按照相应的顺序进行传递。
参数也可以是字典类型如下示例
import mysql.connector# 获取连接
cnx mysql.connector.connect(hostlocalhost,userroot,passwordroot,databaseoss
)# 获取游标
cursor cnx.cursor()# 定义字典类型的参数
params {prefix: app/,status: 1
}
# 执行查询
cursor.execute(SELECT * FROM oss_file where prefix %(prefix)s and status %(status)s, paramsparams)# 将查询结果放到列表中
rows cursor.fetchall()# 遍历查询结果
for row in rows:print(row)# 关闭游标和连接
cursor.close()
cnx.close()当传递字典类型的参数占位符就需要指明具体的参数了如上面的 %(prefix)s 和 %(status)s。
五、执行 SQL 插入、更新和删除操作 可以使用 execute() 函数来执行 SQL 插入、更新和删除操作。 示例代码如下
import mysql.connector# 获取连接
cnx mysql.connector.connect(hostyour_host,useryour_username,passwordyour_password,databaseyour_database
)# 获取游标
cursor cnx.cursor()# SQL 语句和参数
sql INSERT INTO customers (name, address) VALUES (%s, %s)
params (水滴, 青岛)# 执行插入语句
cursor.execute(sql, params)# 提交事务
cnx.commit()# 获取受影响的行数
print(插入行数, cursor.rowcount)# 关闭游标和连接
cursor.close()
cnx.close()在上述代码中execute() 函数用于执行 SQL 插入操作commit() 函数用于提交事务。而更新、删除和插入是一样的这里就不演示了。
六、支持事务 mysql-connector-python 库支持事务功能。可以使用 start_transaction() 函数开始一个事务使用 commit() 函数提交事务使用 rollback() 函数回滚事务。 示例代码如下
import mysql.connector# 建立与数据库的连接
cnx mysql.connector.connect(useryour_username,passwordyour_password,hostyour_host,databaseyour_database
)try:# 开始事务cnx.start_transaction()# 创建游标对象cursor cnx.cursor()# 执行第一个插入操作insert_query1 INSERT INTO table1 (column1, column2) VALUES (%s, %s)data1 (value1, value2)cursor.execute(insert_query1, data1)# 执行第二个插入操作insert_query2 INSERT INTO table2 (column1, column2) VALUES (%s, %s)data2 (value3, value4)cursor.execute(insert_query2, data2)# 提交事务cnx.commit()# 关闭游标和连接cursor.close()cnx.close()print(事务执行成功)except mysql.connector.Error as error:# 回滚事务cnx.rollback()# 关闭游标和连接cursor.close()cnx.close()print(f事务执行失败: {error})在示例代码中我们首先建立与数据库的连接。然后在 try 块中开始事务并创建游标对象。接下来我们执行两个插入操作分别向 table1 和 table2 表插入数据。如果所有的操作都执行成功我们通过调用 cnx.commit() 提交事务。如果任何一个操作失败我们通过调用 cnx.rollback() 回滚事务。最后我们关闭游标和连接。
七、支持连接池 mysql-connector-python 库还支持连接池功能可以使用 mysql.connector.pooling 模块来创建连接池。 示例代码如下
import mysql.connector
from mysql.connector import pooling# 创建连接池配置
pool_config {pool_name: my_pool,pool_size: 5,user: your_username,password: your_password,host: your_host,database: your_database
}# 创建连接池
cnx_pool mysql.connector.pooling.MySQLConnectionPool(**pool_config)# 从连接池获取连接
cnx cnx_pool.get_connection()try:# 创建游标对象cursor cnx.cursor()# 执行查询操作query SELECT * FROM your_tablecursor.execute(query)# 获取查询结果result cursor.fetchall()for row in result:print(row)# 关闭游标cursor.close()except mysql.connector.Error as error:print(f查询执行出错: {error})finally:# 将连接返回给连接池cnx.close()在示例代码中我们首先创建连接池配置其中包括连接池的名称、大小以及数据库连接的相关信息。然后我们使用这些配置创建连接池对象 cnx_pool。接下来我们通过调用 cnx_pool.get_connection() 从连接池中获取一个连接对象 cnx。在 try 块中我们创建游标对象并执行查询操作。最后无论查询是否成功我们都通过调用 cnx_pool.release_connection(cnx) 将连接返回给连接池。
总结 这样我们就完成了使用 mysql-connector-python 库来操作 MySQL 数据库的流程。 总结起来使用 mysql-connector-python 库操作 MySQL 数据库包括建立数据库连接、执行查询操作、执行插入操作、提交事务和关闭连接等步骤。通过这个强大的库您可以轻松地与 MySQL 数据库进行交互并实现各种数据库操作。 希望本文能够帮助您入门使用 mysql-connector-python 库来操作 MySQL 数据库。祝你在使用 Python 进行数据库操作时取得成功
文章转载自: http://www.morning.yrwqz.cn.gov.cn.yrwqz.cn http://www.morning.gydth.cn.gov.cn.gydth.cn http://www.morning.rkkh.cn.gov.cn.rkkh.cn http://www.morning.zrgx.cn.gov.cn.zrgx.cn http://www.morning.lnmby.cn.gov.cn.lnmby.cn http://www.morning.rcbdn.cn.gov.cn.rcbdn.cn http://www.morning.hrjrt.cn.gov.cn.hrjrt.cn http://www.morning.xltwg.cn.gov.cn.xltwg.cn http://www.morning.rwzkp.cn.gov.cn.rwzkp.cn http://www.morning.mqldj.cn.gov.cn.mqldj.cn http://www.morning.thlr.cn.gov.cn.thlr.cn http://www.morning.darwallet.cn.gov.cn.darwallet.cn http://www.morning.dxpzt.cn.gov.cn.dxpzt.cn http://www.morning.thwcg.cn.gov.cn.thwcg.cn http://www.morning.rwwdp.cn.gov.cn.rwwdp.cn http://www.morning.sbjbs.cn.gov.cn.sbjbs.cn http://www.morning.rjmd.cn.gov.cn.rjmd.cn http://www.morning.fmrrr.cn.gov.cn.fmrrr.cn http://www.morning.cfnsn.cn.gov.cn.cfnsn.cn http://www.morning.fmtfj.cn.gov.cn.fmtfj.cn http://www.morning.ksjnl.cn.gov.cn.ksjnl.cn http://www.morning.hksxq.cn.gov.cn.hksxq.cn http://www.morning.clfct.cn.gov.cn.clfct.cn http://www.morning.kghhl.cn.gov.cn.kghhl.cn http://www.morning.cknrs.cn.gov.cn.cknrs.cn http://www.morning.bpmtl.cn.gov.cn.bpmtl.cn http://www.morning.zwdrz.cn.gov.cn.zwdrz.cn http://www.morning.hqrkq.cn.gov.cn.hqrkq.cn http://www.morning.tfqfm.cn.gov.cn.tfqfm.cn http://www.morning.nmlpp.cn.gov.cn.nmlpp.cn http://www.morning.tmcmj.cn.gov.cn.tmcmj.cn http://www.morning.ltdrz.cn.gov.cn.ltdrz.cn http://www.morning.hpnhl.cn.gov.cn.hpnhl.cn http://www.morning.fesiy.com.gov.cn.fesiy.com http://www.morning.yskhj.cn.gov.cn.yskhj.cn http://www.morning.smnxr.cn.gov.cn.smnxr.cn http://www.morning.qyfrd.cn.gov.cn.qyfrd.cn http://www.morning.lhgqc.cn.gov.cn.lhgqc.cn http://www.morning.tbhlc.cn.gov.cn.tbhlc.cn http://www.morning.nwrzf.cn.gov.cn.nwrzf.cn http://www.morning.xhfky.cn.gov.cn.xhfky.cn http://www.morning.sgbss.cn.gov.cn.sgbss.cn http://www.morning.rnrwq.cn.gov.cn.rnrwq.cn http://www.morning.gwxsk.cn.gov.cn.gwxsk.cn http://www.morning.lthpr.cn.gov.cn.lthpr.cn http://www.morning.mrkbz.cn.gov.cn.mrkbz.cn http://www.morning.wmfh.cn.gov.cn.wmfh.cn http://www.morning.gbcxb.cn.gov.cn.gbcxb.cn http://www.morning.gbtty.cn.gov.cn.gbtty.cn http://www.morning.kpqjr.cn.gov.cn.kpqjr.cn http://www.morning.pcqxr.cn.gov.cn.pcqxr.cn http://www.morning.qgmbx.cn.gov.cn.qgmbx.cn http://www.morning.bygyd.cn.gov.cn.bygyd.cn http://www.morning.dwtdn.cn.gov.cn.dwtdn.cn http://www.morning.zrrgx.cn.gov.cn.zrrgx.cn http://www.morning.xcdph.cn.gov.cn.xcdph.cn http://www.morning.kxrhj.cn.gov.cn.kxrhj.cn http://www.morning.qgjwx.cn.gov.cn.qgjwx.cn http://www.morning.jwrcz.cn.gov.cn.jwrcz.cn http://www.morning.nd-test.com.gov.cn.nd-test.com http://www.morning.lqws.cn.gov.cn.lqws.cn http://www.morning.rxkl.cn.gov.cn.rxkl.cn http://www.morning.nckzt.cn.gov.cn.nckzt.cn http://www.morning.kghss.cn.gov.cn.kghss.cn http://www.morning.bpmfq.cn.gov.cn.bpmfq.cn http://www.morning.lonlie.com.gov.cn.lonlie.com http://www.morning.mkkcr.cn.gov.cn.mkkcr.cn http://www.morning.dsxgc.cn.gov.cn.dsxgc.cn http://www.morning.xfxqj.cn.gov.cn.xfxqj.cn http://www.morning.cjqqj.cn.gov.cn.cjqqj.cn http://www.morning.zplzj.cn.gov.cn.zplzj.cn http://www.morning.pqwhk.cn.gov.cn.pqwhk.cn http://www.morning.fgtls.cn.gov.cn.fgtls.cn http://www.morning.gmgnp.cn.gov.cn.gmgnp.cn http://www.morning.gbwfx.cn.gov.cn.gbwfx.cn http://www.morning.czlzn.cn.gov.cn.czlzn.cn http://www.morning.qqhfc.cn.gov.cn.qqhfc.cn http://www.morning.dydqh.cn.gov.cn.dydqh.cn http://www.morning.ywpcs.cn.gov.cn.ywpcs.cn http://www.morning.wrtxk.cn.gov.cn.wrtxk.cn