Python SQLAlchemy保持数据库连接打开

Python SQLAlchemy保持数据库连接打开,python,python-2.7,flask,sqlalchemy,pymsql,Python,Python 2.7,Flask,Sqlalchemy,Pymsql,我的Flask应用程序中有一个关于SQLAlchemy和MySQL的问题。 在我的一个文件中:connection.py我有一个函数,可以创建DB连接并将其设置为全局变量: db=None def db_连接(强制=假): 全局数据库 db=pymysql.connect(…) def makecursor(): cursor=db.cursor(pymysql.cursors.DictCursor) 返回db,游标 然后我有了一个用户模型,它是用SQL ALchemymodels.ppy创建

我的Flask应用程序中有一个关于SQLAlchemy和MySQL的问题。 在我的一个文件中:
connection.py
我有一个函数,可以创建DB连接并将其设置为全局变量:

db=None
def db_连接(强制=假):
全局数据库
db=pymysql.connect(…)
def makecursor():
cursor=db.cursor(pymysql.cursors.DictCursor)
返回db,游标
然后我有了一个用户模型,它是用SQL ALchemy
models.ppy创建的

类用户(模型):
id=列。。。。。。。。
它继承了Model,Model是我在另一个文件
orm.py

导入连接
引擎=创建引擎(url,creator=lambda x:connection.makecursor()[0],pool\u pre\u ping=True)
会话工厂=会话生成器(绑定=引擎,自动刷新=自动刷新)
会话=作用域会话(会话工厂)
类别(u)模型:
query=Session.query\u属性()
模型=声明性的\u基(cls=\u模型,构造函数=模型\u构造函数)
在我的应用程序中,我可以让长脚本运行,以便数据库超时。因此,我有一个函数“重新连接”我的DB(它实际上只创建一个新的连接并替换全局DB变量)

我的目标是能够捕捉我的数据库关闭,并立即重新连接它。我尝试了SQLAlchemy事件,但从未奏效。()

下面是一些重现错误的行:

res=User.query.filter\u by(用户名=”myuser@gmail.com“”.first()
connection.db.close()
#connection.reconnect()#-->解决方案
res=User.query.filter\u by(用户名=”myuser@gmail.com)第一
如果你们对如何做到这一点有任何想法,请告诉我