首页 > 其他 > 详细

with与上下文管理器

时间:2018-04-26 17:48:33      阅读:154      评论:0      收藏:0      [点我收藏+]

使用上下文管理器, 提取与mysql数据库连接的方法:

减少了每次连接数据库的代码量.

原代码:

 1 import pymysql
 2 
 3 conn = pymysql.connect(host="localhost", port=3306, database="datas_database", user="root", password="mysql",charset="utf8") 
 4                          
 5 cur = conn.cursor()
 6 
 7 sql = """select * from datas;"""
 8 cur.execute(sql)
 9 content = cur.fetchall()
10 
11 # 需要进行的操作:关闭数据库连接
12 cur.close()
13 conn.close()
14 
15 for temp in content:
16     print(temp)

 

提取之后:

 1 import pymysql
 2 
 3 class ExecuteSql(object):
 4     def __init__(self,database,sql):
 5         self.conn = pymysql.connect(host="localhost", port=3306, database=database, user="root", password="mysql",
 6                                   charset="utf8")
 7         self.cur = self.conn.cursor()
 8         self.sql = sql
 9 
10     def __enter__(self):
11         self.cur.execute(self.sql)
12         return self.conn, self.cur
13 
14     def __exit__(self, exc_type, exc_val, exc_tb):
15         self.cur.close()
16         self.conn.close()
17 
18 # 传入数据库名字和sql语句, 不用重复写创建连接的代码,直接操作数据库,减少一些代码量
19 database = "datas_database"
20 sql = """select * from datas;"""
21 
22 with ExecuteSql(database, sql) as e:
23     conn, cur = e
24     for temp in cur.fetchall():
25         print(temp)
26     # conn.commit()   # 如果执行修改语句, 需要提交一下.

 

with与上下文管理器

原文:https://www.cnblogs.com/12plus12/p/8953807.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!