为了使flask实现多线程访问时数据安全,使用DBUtils
1.安装DBUtils
import time
import pymysql
import threading
from DBUtils.PooledDB import PooledDB, SharedDBConnection
POOL = PooledDB(
creator = pymysql, # 使用pymysql
maxconnection = 6, # 允许最大连接数
mincached = 2, # 初始化创建的最少空闲链接
maxcached = 5, # 初始化创建的最多空闲链接
maxshared = 3, # 无用参数
blocking = True, # 连接池无可用链接时,是否等待,True为等待 ,不等则报错
maxusage = None, # None链接一直保持不适合
setsession = [],
ping = 0,
host = '127.0.0.1',
port = 3306,
user = 'root',
password = '123',
database = 'test',
charset = 'utf8'
)
def func():
"""
1. 检测当前正在运行链接数是否小于最大连接数,不小于则:等待或 reise TooManyConnection
"""
conn = POOL.connecction()
cursor = conn.cursor()
cursor.execute("select * from stu")
result = cursor.fetchall()
conn.close()
func()