pymysql装饰器封装
2019-12-08 21:10 清风软件测试开发 阅读(389) 评论(0) 编辑 收藏 举报pymysql装饰器封装
def openClose(fun): def run(sql=None): coon =pymysql.connect(host='localhost' ,port=3306 ,user='root', password='1234qwer', db='test', charset='utf8') cursor = coon.cursor() try: cursor.execute(fun( sql)) data = cursor.fetchall() coon.commit() print(data) except Exception as e: coon.rollback() print('运行', str(fun), '方法时出现错误,错误代码:', e) finally: cursor.close() coon.close() return run @openClose def runSql(sql=None): if sql is None: sql = 'select * from students1' return sql runSql() runSql(‘select * from students1‘ where name= ‘tom1’)
添加时间记录功能
添加时间记录功能 def openClose(fun): def run(sql=None): coon =pymysql.connect(host='localhost' ,port=3306 ,user='root', password='1234qwer', db='test', charset='utf8') cursor = coon.cursor() try: start_time = time.time() cursor.execute(fun( sql)) data = cursor.fetchall() coon.commit() end_time = time.time() print('持续时间:'+str(end_time - start_time)) print(data) except Exception as e: coon.rollback() print('运行', str(fun), '方法时出现错误,错误代码:', e) finally: cursor.close() coon.close() return run @openClose def runSql(sql=None): if sql is None: sql = 'select * from students1' return sql runSql() 输出:
open_and_close_db 重要!重要!重要!
open_and_close_db 重要!重要!重要! def open_and_close_db(do_sql): def wrapper(sql='select * from students1'): coon = pymysql.connect(host='localhost' ,port=3306 ,user='root', password='1234qwer', db='test', charset='utf8') cursor = coon.cursor() start_time = time.time() do_sql(cursor, coon, sql) cursor.close() coon.close() end_time = time.time() print('持续时间:' + str(end_time - start_time)) return wrapper @open_and_close_db def do_sql(cursor,coon,sql): try: cursor.execute(sql) data = cursor.fetchall() coon.commit() print(data) except Exception as e: coon.rollback() print('运行时出现错误,错误代码:', e) do_sql() do_sql("update students1 set name = 'tom99999' where score = 44")
输出: