sqlalchemy报错sqlalchemy.orm.exc.DetachedInstanceError

解决方案:

在初始化数据库的代码中,将

python 复制代码
maker = sessionmaker(bind=eng)

修改为

python 复制代码
maker = sessionmaker(bind=eng, expire_on_commit=False)

为什么要添加 expire_on_commit=False 参数?

expire_on_commit 可以用来更改 SQLAlchemy 的对象刷新机制,默认值为 True ,即在 session 调用 commit 之后会主动将同一个sessioncommit之前查询得到的ORM对象的_sa_instance_state.expire属性设置为Flase,再次读取该对象属性时将重载这个对象,方法是重新调用之前的查询语句。

相关推荐
持敬chijing12 分钟前
Web渗透之SQL注入-SQLMAP使用笔记
数据库·sql·安全·web安全·网络安全·网络攻击模型
瀚高PG实验室12 分钟前
流复制备库停机维护前检查步骤
数据库·瀚高数据库·highgo
BomanGe223 分钟前
NSK直线导轨LH55EL与NH55EM替代指南
前端·javascript·数据库·经验分享·规格说明书
JAVA面经实录91723 分钟前
MongoDB(文档型 NoSQL)
java·数据库·mongodb·nosql
睡不醒男孩03082325 分钟前
第十篇:PostgreSQL 生产环境高可用选型:CLUP 与 Patroni 深度架构对比与踩坑实录
数据库·postgresql·架构
JAVA面经实录91728 分钟前
HBase 知识点梳理(文档型 NoSQL)
大数据·数据库·nosql数据库·hbase
小二·36 分钟前
PostgreSQL 高级特性与性能调优
数据库·postgresql
风味蘑菇干1 小时前
JDBC(数据库连接池&DBUtils)
java·数据库
标书畅畅行1 小时前
深度解析钛投标AI标书工具:全流程企业级AI投标解决方案,重构投标数字化生产力
大数据·数据库·人工智能
Wait....1 小时前
MySQL底层知识总结
数据库·mysql