需要的安装包
python2.7:
pip install DBUtils==2.0.3
pip install pymysql==0.10.1
from dbutils.pooled_db import PooledDB
import pymysql
class MysqlConnPool(object):
pool = None
mysql_host = "127.0.0.1"
mysql_port = 3306
mysql_user = "root"
mysql_password = "password"
mysql_database = "test"
def __init__(self):
self.db_host = self.mysql_host
self.db_port = self.mysql_port
self.user = self.mysql_user
self.password = self.mysql_password
self.db = self.mysql_database
self.conn = None
self.cursor = None
self._conn = self.connect_db()
self._cursor = self._conn.cursor()
# with
def __enter__(self):
return self
# with
def __exit__(self, exc_type, exc_val, exc_tb):
self.release_connection()
def connect_db(self):
if self.pool is None:
self.pool = PooledDB(
creator=pymysql,
maxconnections=10,
maxcached=10,
maxshared=10,
blocking=True,
setsession=[],
host=self.db_host,
port=self.db_port,
user=self.user,
password=self.password,
database=self.db,
charset='utf8',
)
return self.pool.connection()
def release_connection(self):
self._cursor.close()
self._conn.close()
# 获取全部数据
def getalldata(self, sql):
count = self._cursor.execute(sql)
if count > 0:
column = self._cursor.description
result = self._cursor.fetchall()
result_list = []
for item in result:
result_list.append({column[i][0]: item[i] for i in range(len(column))})
return result_list
else:
return []