1、用类实现
class DBConnection(object):
def __init__(self,ip,user,passwd,db):
self.ip = ip
self.user = user
self.passwd = passwd
self.db = db
def __enter__(self):
self.conn = pymysql.connect(self.ip, user=self.user, passwd=self.passwd, db=self.db)
self.cur = conn.cursor()
return self.cur
def __exit__(self, exc_type, exc_val, exc_tb):
self.cur.close()
self.conn.close()
with DBConnection('192.168.121.xxx', user="xxx", passwd="123456", db="xxx") as cur:
cur.execute("select * from studnet;")
result = cur.fetchall()
print(result)
2、用模块contextlib
import contextlib
@contextlib.contextmanager
def context_manager():
conn = pymysql.connect('192.168.121.xxx', user="xxx", passwd="123456", db="xxx")
cur = conn.cursor()
yield cur
cur.close()
conn.close()
with context_manager() as cur:
cur.execute("select * from student;")
result = cur.fetchall()
print(result)