Flask-sqlalchemy:何时关闭会话?



我用Flask创建了一个python web应用程序,似乎我与数据库有连接问题。我想这是因为我没有在代码的某个地方关闭我的会话。

db = SQLAlchemy(app)

为数据库,并使用

@views.route('/test/', methods=['GET', 'POST'])
def test():
db.session.add(something)
db.session.commit()
@views.route('/another_page/', methods=['GET', 'POST'])
def page():
some_records = User.query.get(some_ids)

向数据库添加记录。

在这种情况下,我什么时候必须关闭会话?用户离开后是否有办法关闭连接?是否应该在每次使用数据库完成一个页面时关闭该页面?查询后需要关闭连接吗?

文档中说:

与声明式方法一样,您需要在每次请求或应用程序上下文关闭后关闭会话。把它放到你的应用模块中:

from yourapplication.database import db_session
@app.teardown_appcontext
def shutdown_session(exception=None):
db_session.remove()

UPD:在Flask-SQLAlchemy的情况下,这个staff是硬编码的,因此在开发时不需要关心它。

最新更新