安装PyMySQL库
pip3 install PyMySQL
pymysql.cursorsde参数的可选值如下:
类型 | 描述 |
---|---|
Cursor | 普通的游标对象,默认创建的游标对象 |
SSCursor | 不缓存游标,主要用于当操作需要返回大量数据的时候 |
DictCursor | 以字典的形式返回操作结果 |
SSDictCursor | 不缓存游标,将结果以字典的形式进行返回 |
在默认情况下cursor方法返回的是BaseCursor类型对象,BaseCursor类型对象在执行查询后每条记录的结果以列表(list)表示。
如果要返回字典(dict)表示的记录,就要设置cursor参数为pymysql.cursors.DictCursor类。
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# connect_db.py:公共模块,用于连接数据库,并操作数据库
# connect_db:连接数据库,并操作数据库
import pymysql
class OperationMysql:
"""
数据库SQL相关操作
import pymysql
# 打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT VERSION()")
"""
def __init__(self):
# 创建一个连接数据库的对象
self.conn = pymysql.connect(
host='127.0.0.1', # 连接的数据库服务器主机名
port=3306, # 数据库端口号
user='test', # 数据库登录用户名
passwd='111111',
db='test', # 数据库名称
charset='utf8', # 连接编码
cursorclass=pymysql.cursors.DictCursor
)
# 使用cursor()方法创建一个游标对象,用于操作数据库
self.cur = self.conn.cursor()
# 查询一条数据
def search_one(self, sql):
self.cur.execute(sql)
result = self.cur.fetchone() # 使用 fetchone()方法获取单条数据.只显示一行结果
# result = self.cur.fetchall() # 显示所有结果
return result
# 更新SQL
def updata_one(self, sql):
try:
self.cur.execute(sql) # 执行sql
self.conn.commit() # 增删改操作完数据库后,需要执行提交操作
except:
# 发生错误时回滚
self.conn.rollback()
self.conn.close() # 记得关闭数据库连接
# 插入SQL
def insert_one(self, sql):
try:
self.cur.execute(sql) # 执行sql
self.conn.commit() # 增删改操作完数据库后,需要执行提交操作
except:
# 发生错误时回滚
self.conn.rollback()
self.conn.close()
# 删除sql
def delete_one(self, sql):
try:
self.cur.execute(sql) # 执行sql
self.conn.commit() # 增删改操作完数据库后,需要执行提交操作
except:
# 发生错误时回滚
self.conn.rollback()
self.conn.close()
if __name__ == '__main__':
op_mysql = OperationMysql()
res = op_mysql.search_one("SELECT * from odi_order WHERE order_no='12222'")
print(res)