手撸orm

1.用pymysql建立连接用属性建立多连接会很

容易报错,改用方法返回值

MySQL连接池

def connect(self):
return pymysql.connect(host='localhost', user='root', password='root'
, db='db1', port=3306, autocommit=True, charset='utf8')
def __init__(self,max_count=5,timeout=1):
self.max_count=max_count
self.timeout=timeout
self.pool=[]
self.min_count=2
for i in range(self.min_count):
conn = self.connect()
self.pool.append(conn)
def execute(self,sql,args,is_select=False):
while True:
if not self.pool:
if min_count<max_count:
conn = self.connect()
self.pool.append(conn)
else:
time.sleep(self.timeout)
else:
break
conn = self.pool.pop()
cur=conn.cursor(pymysql.cursors.DictCursor)
if is_select:
cur.execute(sql, args)
tag=cur.fetchall()
self.pool.append(conn)
return tag
res = cur.execute(sql)
self.pool.append(conn)
return res












原文地址:https://www.cnblogs.com/wrqysrt/p/10397914.html