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
Python操作数据库,装饰器管理数据库的的打开和关闭。
猜你喜欢
转载自blog.csdn.net/u012593871/article/details/78502218
今日推荐
周排行