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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章