Python操作数据库,装饰器管理数据库的的打开和关闭。

import pymysql
class ConDb():
    def openClose(fun):
        def run(self,sql=None):
            #创建数据库连接
            db=pymysql.connect(host='localhost',port=3306 ,user='root',password='root',db='ljj',charset='utf8')
            #创建游标
            cursor = db.cursor()
            try:
                #运行sql语句
                cursor.execute(fun(self,sql))
                #得到返回值
                li=cursor.fetchall()
                #提交事务
                db.commit()
            except Exception as e:
                #如果出现错误,回滚事务
                db.rollback()
                #打印报错信息
                print('运行',str(fun),'方法时出现错误,错误代码:',e)
            finally:
                #关闭游标和数据库连接
                cursor.close()
                db.close()
            try:
                #返回sql执行信息
                return li
            except:
                print('没有得到返回值,请检查代码,该信息出现在ConDb类中的装饰器方法')
        return run


    @openClose
    def runSql(self,sql=None):
        if sql is None:
            sql='select * from batch'
        return sql

    @openClose
    def runSql1(self,sql=None):
        return sql

猜你喜欢

转载自blog.csdn.net/u012593871/article/details/78502218
今日推荐