我最近開始爲我的項目使用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