📅  最后修改于: 2023-12-03 15:04:41.630000             🧑  作者: Mango
Python 作为一种脚本语言,其应用越来越广泛,而数据库则是后端开发不可或缺的一部分。MySQL 是最为流行的关系型数据库之一,本文将介绍如何通过 Python 连接 MySQL 数据库。
Python 连接 MySQL 需要使用 Connector/Python,它是 MySQL 官方提供的驱动程序。我们可以通过 pip 命令进行安装:
pip install mysql-connector-python
此外,还需要安装 MySQL Server,具体安装方式可以参考官方文档。
连接 MySQL 数据库需要使用 mysql.connector
模块提供的 connect()
方法,它接受一个包含数据库连接信息的字典作为参数,如下所示:
import mysql.connector
config = {
'user': 'your-user',
'password': 'your-password',
'host': 'your-server',
'database': 'your-database'
}
cnx = mysql.connector.connect(**config)
其中 user
和 password
是 MySQL 用户名和密码,host
是 MySQL 服务器地址,database
是需要连接的数据库名称。使用 connect()
方法连接成功后,返回一个 mysql.connector.connection_cext.CMySQLConnection
对象。
连接成功后,我们可以通过 cursor()
方法获取一个游标对象,用于执行 SQL 语句。例如:
cursor = cnx.cursor()
query = "SELECT * FROM users"
cursor.execute(query)
for (id, name) in cursor:
print(id, name)
cursor.close()
cnx.close()
以上代码查询 users
表中的所有记录,并输出每条记录的 id
和 name
字段值。
MySQL 数据库支持预处理(prepared statement)功能,它可以提高 SQL 语句的执行效率,同时避免 SQL 注入等安全问题。我们可以使用 mysql.connector
模块提供的 prepare()
和 execute()
方法进行预处理,例如:
cursor = cnx.cursor(prepared=True)
stmt = "INSERT INTO users (name) VALUES (%s)"
values = [('Alice',), ('Bob',), ('Charlie',)]
cursor.executemany(stmt, values)
cnx.commit()
cursor.close()
cnx.close()
以上代码向 users
表中插入三条记录,分别为 Alice、Bob 和 Charlie。使用 prepared=True
参数表示启用预处理功能,%s
表示占位符,后面的 values
参数是一个元组列表,表示每个占位符对应的值。
通过本文的介绍,我们学习到了如何通过 Python 连接 MySQL 数据库,并执行 SQL 语句。MySQL Connector/Python 提供了丰富的 API,可以满足各种数据库操作需求。如果你还没有尝试过,赶快动手试试吧!