栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从flask中使用SQLAlchemy的会议上提出了“SQLite的对象一个线程创建只能在同一个线程中使用”

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从flask中使用SQLAlchemy的会议上提出了“SQLite的对象一个线程创建只能在同一个线程中使用”

如果共享线程之间的会话的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()    ...

还要注意的是,你应该只定义引擎,会话等曾经和其他地方进口的,而不是像当前的代码不会在每个文件重新定义。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/639454.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号