python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python数据库增删改查

利用Python封装MySQLHelper类实现数据库的增删改查功能

作者:小小鸟爱吃辣条

Python 连接 MySQL 的方法有很多,常用的有 pymysql 和 mysql-connector-python 两种库,本文主要介绍了如何封装一个MySQLHelper类,实现对数据库的增删改查功能,感兴趣的可以了解一下

Python 连接 MySQL 的方法有很多,常用的有 pymysql 和 mysql-connector-python 两种库。本文介绍使用 pymysql 库连接 MySQL,并实现基本的增删改查操作。

在使用 pymysql 前需要先安装该库,可使用 pip 命令进行安装:

pip install pymysql

首先,我们可以封装一个 MySQLHelper 类来管理数据库连接和操作:

import pymysql


class MySQLHelper:
    def __init__(self, host, port, user, password, database):
        self.host = host
        self.port = port
        self.user = user
        self.password = password
        self.database = database
        self.conn = pymysql.connect(host=host, port=port, user=user, password=password, database=database)

    def execute(self, sql: str, params: tuple = None):
        """执行 SQL 语句,无返回值"""
        cursor = self.conn.cursor()
        cursor.execute(sql, params or ())
        self.conn.commit()
        cursor.close()

    def query_one(self, sql: str, params: tuple = None):
        """查询并返回单条数据"""
        cursor = self.conn.cursor()
        cursor.execute(sql, params or ())
        result = cursor.fetchone()
        cursor.close()
        return result

    def query_all(self, sql: str, params: tuple = None):
        """查询并返回所有数据"""
        cursor = self.conn.cursor()
        cursor.execute(sql, params or ())
        result = cursor.fetchall()
        cursor.close()
        return result

    def insert(self, table, data: dict):
        """插入一条数据"""
        fields = ','.join(data.keys())
        values = ','.join(['%s'] * len(data))
        sql = 'INSERT INTO %s (%s) VALUES (%s)' % (table, fields, values)
        self.execute(sql, tuple(data.values()))

    def update(self, table, data: dict, where: str = '1=2', where_params: tuple = None):
        """更新数据"""
        set_values = ','.join(['%s=%s' % (field, '%s') for field in data.keys()])
        sql = 'UPDATE %s SET %s WHERE %s' % (table, set_values, where)
        params = tuple(data.values())
        if where_params:
            params += where_params
        self.execute(sql, params)

    def delete(self, table, where: str = '1=2', where_params: tuple = None):
        """删除数据"""
        sql = 'DELETE FROM %s WHERE %s' % (table, where)
        if where_params:
            self.execute(sql, where_params)
        else:
            self.execute(sql)

    def close(self):
        """关闭数据库连接"""
        self.conn.close()

以上 MySQLHelper 类封装了基本的增删改查操作,说明如下:

在使用 MySQLHelper 类时,需要先实例化一个对象,并传递数据库连接参数。以下是一个简单的示例:

if __name__ == '__main__':
    helper = MySQLHelper('localhost', 3306, 'root', 'your_password', 'mydatabase')
    helper.insert('mytable', {'column1': 'value1', 'column2': 'value2'})
    helper.update('mytable', {'column1': 'new_value'}, 'id=%s', (1,))
    helper.delete('mytable', 'id=%s', (1,))
    result = helper.query_one('SELECT column1 FROM mytable WHERE id=%s', (1,))
    helper.close()

以上示例代码使用 MySQLHelper 连接到名为 mydatabase 的数据库,并操作名为 mytable 的表。具体实现了数据库的增、删、改、查等功能。执行完毕后,还需调用 close 方法关闭数据库连接。

总体而言,使用 Python 和 pymysql 库连接和操作 MySQL 数据库非常简单方便,可以轻松地完成各种数据库操作任务。

到此这篇关于利用Python封装MySQLHelper类实现数据库的增删改查功能的文章就介绍到这了,更多相关Python数据库增删改查内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文