繁体   English   中英

Flask-sqlalchemy:何时关闭会话?

[英]Flask-sqlalchemy: When to close sessions?

我已经用 Flask 创建了一个 python webapp,似乎我遇到了与数据库的连接问题。 我认为这是因为我没有在代码中的某处关闭会话。

我有

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 的情况下,这个人员是硬编码的,因此你在开发时不需要关心它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM