Python3实现的Mysql数据库操作封装类

Python3实现的Mysql数据库操作封装类

本文主要介绍了如何使用Python3实现Mysql数据库的基本操作,封装一个操作Mysql数据库的类。该类可以完成数据库的增、删、改、查等操作,使用方法简单方便。

环境准备

在使用本封装类之前,需要先安装好Mysql数据库,以及相应的Python Mysql库。可以通过下面的命令进行安装:

pip install pymysql

操作封装类的实现

操作封装类的核心是将Mysql数据库操作的基本方法,封装到一个类里面。本文使用了Python的面向对象编程技术,定义了一个Mysql类,提供了数据库的增、删、改、查等操作方法。以下是封装类的核心代码:

import pymysql

class Mysql(object):
    def __init__(self, host=None, port=None, user=None, password=None, db=None, charset=None):
        '''
        初始化方法
        '''
        self.host = host or 'localhost'
        self.port = port or 3306
        self.user = user or 'root'
        self.password = password or 'password'
        self.db = db or 'test'
        self.charset = charset or 'utf8mb4'

        self.conn = None
        self.cursor = None

    def __enter__(self):
        '''
        实现with语句需要的方法
        '''
        return self.connect()

    def __exit__(self, exc_type, exc_val, exc_tb):
        '''
        实现with语句需要的方法
        '''
        self.close()

    def connect(self):
        '''
        连接数据库方法
        '''
        self.conn = pymysql.connect(
            host=self.host,
            port=self.port,
            user=self.user,
            password=self.password,
            db=self.db,
            charset=self.charset,
            cursorclass=pymysql.cursors.DictCursor
        )

        self.cursor = self.conn.cursor()

        return self

    def close(self):
        '''
        关闭数据库连接方法
        '''
        if self.cursor:
            self.cursor.close()

        if self.conn:
            self.conn.close()

        return self

    def commit(self):
        '''
        提交事务方法
        '''
        self.conn.commit()

        return self

    def rollback(self):
        '''
        回滚事务方法
        '''
        self.conn.rollback()

        return self

    # select查询语句
    def select(self, table_name, where=None, fields=None, limit=None, order_by=None):
        fields = fields or '*'

        sql = 'SELECT %s FROM `%s`' % (fields, table_name)

        if where:
            sql += ' WHERE %s' % where

        if order_by:
            sql += ' ORDER BY %s' % order_by

        if limit:
            sql += ' LIMIT %s' % limit

        self.cursor.execute(sql)

        return self.cursor.fetchall()

    # insert插入语句
    def insert(self, table_name, data):
        fields = ','.join(data.keys())
        values = ','.join(['"%s"' % v for v in data.values()])

        sql = 'INSERT INTO `%s` (%s) VALUES (%s)' % (table_name, fields, values)

        try:
            self.cursor.execute(sql)
            self.commit()
            return self.cursor.lastrowid
        except:
            self.rollback()

    # update更新语句
    def update(self, table_name, data, where=None):
        values = ','.join(['%s="%s"' % (k, v) for k, v in data.items()])

        sql = 'UPDATE `%s` SET %s' % (table_name, values)

        if where:
            sql += ' WHERE %s' % where

        try:
            self.cursor.execute(sql)
            self.commit()
            return self.cursor.rowcount
        except:
            self.rollback()

    # delete删除语句
    def delete(self, table_name, where=None):
        sql = 'DELETE FROM `%s`' % table_name

        if where:
            sql += ' WHERE %s' % where

        try:
            self.cursor.execute(sql)
            self.commit()
            return self.cursor.rowcount
        except:
            self.rollback()

代码说明:

  • 初始化方法:设置了数据库的连接参数,创建连接和游标对象。
  • enter()和__exit__()方法:用于实现上下文管理器,可以使用with语句连接和关闭数据库。
  • connect()和close()方法:连接和关闭数据库。
  • commit()和rollback()方法:提交和回滚事务。
  • select()方法:查询操作。
  • insert()方法:插入操作。
  • update()方法:更新操作。
  • delete()方法:删除操作。

示例用法

下面来看2个使用该封装类的简单示例。

示例1:查询数据

from mysql import Mysql

if __name__ == '__main__':
    with Mysql(db='test') as mysql:
        result = mysql.select('user', where='status=1', limit=10)
        for row in result:
            print(row)

执行以上代码可以查询user表的前10条记录。

示例2:插入数据

from mysql import Mysql

if __name__ == '__main__':
    data = {
        'name': '张三',
        'age': 18,
        'status': 1
    }

    with Mysql(db='test') as mysql:
        mysql.insert('user', data)

执行以上代码可以插入一条新记录到user表中。

总结

本文介绍了如何使用Python3封装Mysql数据库的基本操作,提供了一个操作Mysql的封装类,可以实现数据库增、删、改、查等通用操作。示例代码也展示了如何使用该封装类进行数据库操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3实现的Mysql数据库操作封装类 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地

    在本攻略中,我们将介绍如何使用Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地。聚划算商品分析页面是一个数据分析平台,提供了聚划算商品的销售数据和趋势分析等信息。我们可以使用Python和requests库来抓取聚划算商品分析页面,并使用BeautifulSoup库来解析HTML页面,获取商品信息。最后,我们可以使用xml.etree.…

    python 2023年5月15日
    00
  • Python中的xlrd模块使用整理

    下面是详细讲解Python中的xlrd模块的使用整理: 什么是xlrd模块 xlrd是Python语言的一个库,用于读取和处理Excel文件,支持.xls和.xlsx格式的文件。该模块可以帮助我们读取Excel文件中的所有数据,并对其进行处理和分析。 安装xlrd模块 使用pip install xlrd命令即可安装xlrd模块,如下所示: pip inst…

    python 2023年5月13日
    00
  • Python基于pandas爬取网页表格数据

    Python是一种流行的编程语言,pandas是Python中常用的数据处理库,可以方便地进行数据分析、清洗和处理等操作。本文将具体讲解如何使用Python和pandas来爬取网页表格数据。 准备工作 在使用Python和pandas进行网页表格数据爬取之前,需要先安装所需的相关库。可以使用以下命令来安装: pip install pandas pip in…

    python 2023年5月14日
    00
  • python线程join方法原理解析

    Python线程join方法原理解析 在Python中,线程是一种轻量级的执行单元,可以同时执行多个任务。线程的join方法是一种常用的线程同步方法,可以让主线程等待子线程执行完毕后再继续执行。本文将详细讲解Python线程join方法的原理和使用方法。 join方法的原理 join方法是Thread类的一个方法,用于等待线程执行完毕。当一个线程调用另一个线…

    python 2023年5月15日
    00
  • python读出当前时间精度到秒的代码

    要读取当前时间精度到秒的代码,在Python中可以使用标准库中的datetime模块。具体实现方法如下: 首先,我们需要导入datetime模块,使用datetime类和strftime函数。 import datetime now = datetime.datetime.now().strftime(‘%Y-%m-%d %H:%M:%S’) print(n…

    python 2023年6月3日
    00
  • 通俗讲解python 装饰器

    当我们需要给已经存在的函数添加一些额外的功能,但是又不想修改已有函数的功能时,Python中的装饰器就是一个非常适合的工具。装饰器是一种返回函数的函数,它可以接受一个函数作为参数并返回一个新的函数来增强参数函数的功能。装饰器提供了一种方便的方式来修改函数,而不需要对原始函数的代码进行修改。 什么是装饰器 装饰器本质上是一个 Python 函数或类,可以使其他…

    python 2023年5月18日
    00
  • python的命名规则知识点总结

    Python 的命名规则知识点总结 在 Python 中,命名规则是非常重要的,它可以影响代码的可读性和可维护性。以下是 Python 的命名规则知识点总结。 1. 变量命名规则 在 Python 中,变量名应该使用小写字母,并使用下划线分隔单词。以下是一个变量命名规则的示例: first_name = ‘John’ last_name = ‘Doe’ 在上…

    python 2023年5月15日
    00
  • 利用python实现逐步回归

    以下是关于“利用Python实现逐步回归”的完整攻略: 简介 逐步回归是一种特征选择技术,它通过逐步添加或删除特征来构建一个模型。在这个过程中,每次添加或删除一个特征,都会重新计算模型的误差,以确定哪个特征对模型的影响最大。本教程将介绍如何使用Python实现逐步回归,并讨论如何使用该技术来选择最佳特征集。 步骤 1.导入数据 首先,我们需要导入数据。可以使…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部