Python使用PyMySQL封装通用数据库连接与查询的方法
本文介绍如何在Python项目中利用PyMySQL库封装通用的数据库连接、关闭及查询功能。通过示例展示安装步骤、基础连接代码以及execute方法的使用,重点讲解如何封装query函数以支持动态参数传入,从而在不依赖ORM框架的情况下高效完成数据库操作。
前言
大多数项目都依赖数据库,而在Python生态中,虽然Django等框架自带ORM,Flask需扩展ORM,使用ORM确实能带来便利,但也意味着需要投入时间学习特定框架的API。本文将演示如何使用PyMySQL库,简单封装一套适用于项目的通用数据库连接、关闭及查询逻辑。
PyMySQL介绍与安装
PyMySQL是Python3.x环境下连接MySQL服务器的第三方库,而在Python2版本中通常使用mysqldb。
可通过终端执行以下命令进行安装:
pip3 install PyMySQL
PyMySQL的使用
import pymysql
# 打开数据库连接,password为你的数据库密码,db是数据库名
db = pymysql.connect(host="127.0.0.1",
user="root",
password=" ",
db=" ",
charset="utf8")
# 使用 cursor() 方法创建一个游标对象
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print("Database version : %s " % data)
#关闭数据库连接
db.close()
代码中的password字段需替换为实际的数据库密码,db字段为数据库名称,执行前请确保MySQL数据库已创建并配置正确。

如图所示,连接成功后可获取数据库版本信息。
使用execute方法执行SQL语句。
获取执行结果时,可通过不同方法指定返回条数,常用选项包括:
fetchone() # 取得检索结果的一条数据
fetchmany(n) # 取得检索结果的n条数据
fetchall() # 取得检索结果的所有数据
需注意,fetch系列方法与文件读取指针类似。若在同一代码段中先调用fetchone()获取第一条数据,再调用fetchmany(2),指针将从当前位置继续向后读取,而非从头重新开始。
获取的结果类型为元组,具体示例如下:

封装项目通用的连接和查询
使用时需自行填入密码和数据库名称。
import pymysql
# 创建连接
#return: 连接,游标
def get_conn():
# 创建连接
conn = pymysql.connect(host="127.0.0.1",
user="root",
password="",
db="",
charset="utf8")
# 创建游标
cursor = conn.cursor()# 执行完毕返回的结果集默认以元组显示
return conn, cursor
# 关闭游标,连接
def close_conn(conn, cursor):
cursor.close()
conn.close()
def query(sql,*args):
"""
封装通用查询
:param sql:
:param args:
:return: 返回查询到的结果,((),(),)的形式
"""
conn, cursor = get_conn()
cursor.execute(sql,args)
res = cursor.fetchall()
close_conn(conn, cursor)
return res
封装后,查询时只需调用query()函数。通过*args可传入任意数量或不传参数,只要SQL语句中的占位符数量与传入参数个数一致即可。
调用方式如下图所示:

结语
只要SQL编写规范,PyMySQL即可满足项目需求,并非必须使用ORM。
以上是关于Python利用PyMySQL封装通用连接和查询的详细内容,更多相关Python pymysql封装连接查询的资料请持续关注本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









