pymysql装饰器封装
2024-10-21 14:23:08
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")
输出:
最新文章
- json的注意事项
- 夺命雷公狗----Git---5---分支
- Android开发之无线遥控器
- PHP移动文件指针ftell()、fseek()、rewind()总结
- xss漏洞挖掘小结
- Linux I2C总线控制器驱动(S3C2440)
- Python自动化 【第十篇】:Python进阶-多进程/协程/事件驱动与Select\Poll\Epoll异步IO
- iOS - AVPlayer 音视频播放
- Linux chmod
- #ifndef #define #endif 防止头文件被重复引用
- 关于No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s)使用百度地图的解决办法
- 对bootstrap不同版本的总结
- android - 解决“应用自定义权限重名”
- 远程调用服务框架-CXF(WebServic)
- 自定义的Config节点及使用
- SQL server 数据库的版本为661,无法打开,此服务器只支持655版及更低版本。不支持降级路径
- springboot项目部署云服务器
- angular 过滤器(日期转换,时间转换,数据转换等)
- IDEA的Maxcomputer Studio开发
- Ajax提交form表单内容和文件(jQuery.form.js)