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,再次读取该对象属性时将重载这个对象,方法是重新调用之前的查询语句。

相关推荐
running up15 小时前
MyBatis 核心知识点与实战
数据库·oracle·mybatis
薛不痒15 小时前
MySQL中使用SQL语言
数据库·sql·mysql
五阿哥永琪16 小时前
SQL中的函数--开窗函数
大数据·数据库·sql
为什么不问问神奇的海螺呢丶16 小时前
Oracle 数据库对象导出脚本-含创建语句
数据库·oracle
码农阿豪16 小时前
告别兼容焦虑:电科金仓 KES 如何把 Oracle 的 PL/SQL 和 JSON 业务“接住”
数据库·sql·oracle·json·金仓数据库
曹牧16 小时前
Oracle SQL 中,& 字符
数据库·sql·oracle
wdfk_prog16 小时前
[Linux]学习笔记系列 -- [fs]dcache
linux·数据库·笔记·学习·ubuntu
xrl201217 小时前
ruoyi-vue2集成flowable6.7.2后端篇
数据库·ruoyi·flowable·工作流集成
java1234_小锋17 小时前
Redis到底支不支持事务啊?
java·数据库·redis
云和恩墨18 小时前
告别 “事后救火”:7 大前置动作规避 80% 数据库故障
数据库·oracle