flask-sqlalchemy做系统orm层,报lost connetion以及sql has gone away的解决办法
来源:4-9 将模型映射到数据库中
邱晨100
2019-10-30
老师好,我是跟随着您的python基础课以及flask进阶课一路学来的。最近在用flask框架,做一套业务系统。
orm层就是采用的flask-sqlalchemy(数据库连接器是pymysql)
现在有两个问题想请教一下老师:cnt = db.session.query(HiveExecRecord).filter_by(exec_uuid=str(exec_uuid)).count()
这是我的访问数据库的代码,我在老师的事例中并没有看到查询结束后在finally阶段写db.session.remove()
。请问,这个动作有必要做吗?
还有个问题是:
关于配置,是否这一个SQLALCHEMY_DATABASE_URI就够了?我在我的配置中加了以下三项:SQLALCHEMY_POOL_SIZE = 5 SQLALCHEMY_POOL_TIMEOUT = 30 SQLALCHEMY_POOL_RECYCLE = -1
当时时不时发生2013 lost connetion以及2006 sql has gone away这样的错误,然后前台用户使用期间,突然输入某句话做检索,就异常以下,然后再刷新,又能连上数据库,正常返回结果了。请问这是怎么回事呢?与那个设置有没有关系呢?
后面我是改成了以下的配置:SQLALCHEMY_POOL_SIZE = 20 SQLALCHEMY_POOL_TIMEOUT = 10 SQLALCHEMY_POOL_RECYCLE = 1200
请老师帮忙看看我的问题吧,谢谢了
1回答
-
不需要remove的。你只告诉我,你和课程里的用法有什么不同,为什么?
052019-12-02
相似问题