我正在使用Flask SQLAlchemy连接到我的mysql数据库,但是它具有默认的wait_timeout 120秒,因此在查询用户并且一段时间没有使用网络后,我会收到错误消息
(2013, 'Lost connection to MySQL server during query')
db.py
中的重要部分app = Flask(__name__)
db = SQLAlchemy(app)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://urltomyserver'
app.config['SQLALCHEMY_POOL_RECYCLE'] = 10
app.config['SQLALCHEMY_POOL_TIMEOUT'] = 120
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db.init_app(app)
if __name__ == 'createdb':
db.reflect()
db.drop_all()
db = SQLAlchemy(app)
还有我的 views.py
@core.route('/')
def index():
userzy = sftpuser.query.all()
return render_template('index.html', userzy=userzy)
#I'D LIKE TO CLOSE MY CONNECTION HERE
在def index中返回模板后,我已经尝试过这些
db.session.close()
db.close()
db.dispose()
db.session.close()
db.engine.dispose()
db.session.commit()
还有这个
@app.teardown_appcontext
def teardown_db(error):
db.session.close()
db.engine.dispose()
但这对我没有太大帮助,任何人都知道解决方案,即使设置了池,为什么我仍然会出错?
答案 0 :(得分:0)
您是否曾尝试更改此配置:app.config ['SQLALCHEMY_POOL_TIMEOUT'] = 120 ???