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

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

本文介绍如何在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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。