Python使用PyMySQL封装通用数据库连接与查询的方法

木白
木白
发布时间:2026-10-15 | 4人浏览过
原创

本文介绍如何在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封装连接查询的资料请持续关注本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表