我最近开始为我的项目使用Flask + Sqlalchemy,并在离开服务器一天后注意到500错误。我认为这是由于数据库会话超时,但我不确定。我们是否应该为每个请求创建一个新的会话,还是Flask应用程序启动的一个? 我有这个在我app.py烧瓶和sqlalchemy:处理会话
from sqlalchemy import Column, ForeignKey, Integer, String, create_engine, func, cast, Float
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship,scoped_session,sessionmaker,aliased
engine = createengine(DB_PATH)
Session = sessionmaker(bind=engine)
session = Session()
app = Flask(name_)
然后在视图中的所有查询的顶部,我做这样的事情:“session.query(表)...” 这是错的,应该我正在为每个端点呼叫进行会话?
任何人都可以澄清一件事吗? “Declarative”部分的http://flask.pocoo.org/docs/0.12/patterns/sqlalchemy/中的手册建议直接使用scoped_session返回的对象,而不是每次创建会话实例,也不要求使用g目的。哪种方法是正确的? – AlexVB