如果共享线程之间的会话的SQLAlchemy(在这种情况下SQLite的也有)不起作用。您可能没有使用线程明确,但
mod_wsgi就是和你定义一个全局
session对象。无论是使用
scoped_session处理创建为每个线程唯一的会话。
session = scoped_session(sessionmaker(bind=engine))@app.teardown_requestdef remove_session(ex=None): session.remove()@app.route('/')def example(): item = session.query(MyModel).filter(...).all() ...
最好使用烧瓶SQLAlchemy的它处理这个和其他的东西给你。在SQLAlchemy的文档建议您使用集成库,而不是这样做你自己。
db = SQLAlchemy(app)@app.route('/')def example(): item = db.session.query(MyModel).filter(...).all() ...
还要注意的是,你应该只定义引擎,会话等曾经和其他地方进口的,而不是像当前的代码不会在每个文件重新定义。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)