认识pymysql

借助pymysql模块,这是一个python编写的MYSQL驱动程序,借助它来操作数据库。

操作数据库的流程和java 使用原生的JDBC操作数据的流程步骤差不多。

安装pymysql

pip install pymysql

操作步骤

导入pymysql模块

import pymysql

创建数据库连接对象

conn = pymysql.connect(参数列表)

- host: 连接的mysql主机地址
- port: 连接的端口
- database: 连接的数据库名称
- user: 连接的用户面
- password: 连接密码
- charset: 连接采用的编码方式,推荐使用utf-8


conn.close(): 关闭连接
conn.commit(): 提交数据
conn.rollback(): 撤销数据

获取操作游标对象

使用游标对象,完成对数据库的增删改查操作

cur = conn.cursor()


- execute(语句): 执行操作数据库的语句
- fetchone(): 获取查询结果集中的一条数据,返回一个元组
- fetchall(): 获取查询结果集中的所有数据,返回一个元组
- close(): 关闭游标对象

使用示例

获取一条用户数据

示例

# 导入操作数据库的模块
import pymysql

# 创建数据库连接对象
conn = pymysql.connect(host="127.0.0.1",
                       port=3306,
                       user="root",
                       password="123456",
                       database="test",
                       charset="utf8")

# 获取游标对象
cursor = conn.cursor()

# 执行操作语句
sql = "select * from user;"
cursor.execute(sql)

# 获取查询结果集
row = cursor.fetchone()
print(row)

# 关闭游标
cursor.close()

# 关闭连接
conn.close()

运行结果

('10000', 'admin', 'admin', '00', '', None, '', None, '', '', '94450247b4faaabacd7f71ab19da03e6', '0', datetime.datetime(2024, 1, 8, 10, 17, 47), None, 0, '管理员用户')

获取所有数据

示例

# 导入操作数据库的模块
import pymysql

# 创建数据库连接对象
conn = pymysql.connect(host="127.0.0.1",
                       port=3306,
                       user="root",
                       password="123456",
                       database="test",
                       charset="utf8")

# 获取游标对象
cursor = conn.cursor()

# 执行操作语句
sql = "select * from user;"
cursor.execute(sql)

# 获取查询结果集
row = cursor.fetchall()
print(row)

# 关闭游标
cursor.close()

# 关闭连接
conn.close()

这里获取到的就是数据库user表里所有的数据。

数据库的增删改

示例

# 导入操作数据库的模块
import pymysql

# 创建数据库连接对象
conn = pymysql.connect(host="127.0.0.1",
                       port=3306,
                       user="root",
                       password="123456",
                       database="test",
                       charset="utf8")

# 获取游标对象
cursor = conn.cursor()

# 执行操作语句
# 增加操作 sql = "insert语句"
# 修改操作 sql = "update语句"
# 删除操作 sql = "delete语句"

try:
    cursor.execute(sql)
    # 手动提交事务
    conn.commit()
except:
    # 如果报错就回滚
    conn.rollback()

# 获取查询结果集
row = cursor.fetchall()
print(row)

# 关闭游标
cursor.close()

# 关闭连接
conn.close()

重要的是手动提交事务,和对数据库操作失败时进行回滚的操作。

02-11 16:08