unittest笔记五【数据库工具类封装】

本文介绍如何在Python中使用pymysql库安装并操作MySQL数据库,重点讲解了数据库封装技巧,如创建MysqlDb类来执行查询、更新等操作,并通过filterwarnings过滤Mysql警告。实例演示了如何连接数据库、执行SQL和处理异常情况。
摘要由CSDN通过智能技术生成

简介:
安装python3操作mysql数据库
数据库数据库封装
from warnings import filterwarnings 操作的时候方便忽略错误告警

# 忽略Mysql告警信息
filterwarnings("ignore", category=pymysql.Warning)

封装工具类MysqlDb
建立数据库连接
使用cursor方法获取操作游标
关闭游标和连接

#查询数据库
#查询,传参:sql 和 state(默认查询全部)
def query(self, sql, state="all"):  
		#传入sql        
        self.cur.execute(sql)  
        #判断查询多条还是单条数据     		
        if state == "all":  		         
            data = self.cur.fetchall()    # 查询全部
        else:         
            data = self.cur.fetchone()    # 查询单条
        return data
#更新数据库
def execute(self, sql):            """更新、删除、新增"""
        try:  
        	# 使用execute操作sql          
            rows = self.cur.execute(sql)   
            # 提交事务          
            self.conn.commit()             
            return rows
        except Exception as e:
            print("数据库操作异常 {0}".format(e))
            #回滚
            self.conn.rollback()           

完整栗子🌰

import pymysql
from warnings import filterwarnings
​
# 忽略Mysql告警信息
filterwarnings("ignore", category=pymysql.Warning)
​
​
class MysqlDb:
​
    def __init__(self):
        # 建立数据库连接
        self.conn = pymysql.connect("127.0.0.1", "root", "xdclass.net", "xd_api_test_demo")# 使用 cursor 方法获取操作游标,得到一个可以执行sql语句,并且操作结果作为字典返回的游标
        self.cur = self.conn.cursor(cursor=pymysql.cursors.DictCursor)
​
    def __del__(self):
        # 关闭游标
        self.cur.close()
        # 关闭连接
        self.conn.close()
​
    def query(self, sql, state="all"):
        """
        查询
        :param sql:
        :param state: all是默认查询全部
        :return:
        """
        self.cur.execute(sql)if state == "all":
            # 查询全部
            data = self.cur.fetchall()
        else:
            # 查询单条
            data = self.cur.fetchone()
        return data
​
    def execute(self, sql):
        """
        更新、删除、新增
        :param sql:
        :return:
        """
        try:
            # 使用execute操作sql
            rows = self.cur.execute(sql)
            # 提交事务
            self.conn.commit()
            return rows
        except Exception as e:
            print("数据库操作异常 {0}".format(e))
            self.conn.rollback()
​
​
if __name__ == '__main__':
    mydb = MysqlDb()
    #r = mydb.query("select * from `case`")
    r = mydb.execute("insert into `case` (`app`) values('xd')")
    print(r)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值