Python pymsql模块的使用

1. Python pymsql模块的介绍

Python是一种强大的编程语言,广泛用于数据处理、科学计算、网站开发等领域。而PyMySQL是Python中常用的与MySQL数据库进行交互的模块。PyMySQL是一个纯Python实现的MySQL客户端,可以在不需要MySQLdb模块的情况下使用Python来连接MySQL。

2. 安装PyMySQL模块

2.1. 使用pip安装

PyMySQL可以通过pip工具进行安装。在命令行中运行以下命令:

pip install PyMySQL

在安装完成后,可以在Python代码中使用import pymysql语句导入PyMySQL模块。

3. 连接MySQL数据库

PyMySQL提供了connect()函数来连接MySQL数据库。连接数据库需要提供正确的主机名、用户名、密码和数据库名。

3.1. 建立连接

import pymysql

# 建立数据库连接

connection = pymysql.connect(host='localhost',

user='root',

password='password',

database='test',

charset='utf8mb4',

cursorclass=pymysql.cursors.DictCursor)

此处的hostuserpassworddatabase分别对应MySQL的主机名、用户名、密码和数据库名。而charset参数可以设置数据库的字符集,默认为utf8mb4

3.2. 关闭连接

# 关闭连接

connection.close()

不需要访问数据库时,应该显式地调用close()方法关闭数据库连接,避免连接资源的浪费。

4. 执行SQL语句

4.1. 创建游标

在PyMySQL中,要执行SQL语句,需要先创建一个游标对象。游标(cursor)用于执行SQL语句并获取查询结果。

# 创建游标对象

cursor = connection.cursor()

4.2. 执行SQL语句

可以使用游标对象的execute()方法执行SQL语句。

# 执行SQL语句

sql = "SELECT * FROM students WHERE age > 18"

cursor.execute(sql)

4.3. 获取查询结果

执行SQL语句后,可以使用游标对象的fetchall()方法获取所有的查询结果。

# 获取查询结果

results = cursor.fetchall()

# 遍历查询结果

for row in results:

print(row)

4.4. 提交事务

在执行写操作(插入、更新、删除)之后,需要调用commit()方法提交事务,使修改生效。

# 提交事务

connection.commit()

4.5. 异常处理

在使用PyMySQL时,应该合理处理可能出现的异常。可以使用try...except语句捕获并处理异常。

try:

# 执行SQL语句

cursor.execute(sql)

# 提交事务

connection.commit()

except Exception as e:

print("执行SQL语句出错:", e)

# 回滚事务

connection.rollback()

finally:

# 关闭游标对象

cursor.close()

# 关闭数据库连接

connection.close()

5. 实例演示

下面通过一个简单的示例演示PyMySQL模块的使用。

import pymysql

# 建立数据库连接

connection = pymysql.connect(host='localhost',

user='root',

password='password',

database='test',

charset='utf8mb4',

cursorclass=pymysql.cursors.DictCursor)

# 创建游标对象

cursor = connection.cursor()

# 插入数据到students表

sql = "INSERT INTO students (name, age) VALUES (%s, %s)"

data = [('Alice', 20), ('Bob', 22), ('Cathy', 19)]

try:

cursor.executemany(sql, data)

connection.commit()

except Exception as e:

print("插入数据出错:", e)

connection.rollback()

# 查询年龄大于18的学生

sql = "SELECT * FROM students WHERE age > 18"

try:

cursor.execute(sql)

results = cursor.fetchall()

for row in results:

print(row)

except Exception as e:

print("查询数据出错:", e)

# 关闭游标对象和数据库连接

cursor.close()

connection.close()

以上代码首先进行数据库连接,然后插入了三条学生数据到students表中。接着查询年龄大于18的学生并输出结果。最后关闭了游标对象和数据库连接。

总结

本文介绍了Python中与MySQL数据库交互的PyMySQL模块的使用。通过连接数据库、执行SQL语句和处理异常的示例代码,帮助读者理解PyMySQL的基本用法。在实际开发中,熟练使用PyMySQL模块可以方便地对MySQL数据库进行操作,从而提高开发效率。

后端开发标签