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

相关推荐
Zoey的笔记本44 分钟前
「支持ISO27001的GTD协作平台」数据生命周期管理方案与加密通信协议
java·前端·数据库
什么都不会的Tristan1 小时前
MybatisPlus-扩展功能
数据库·mysql
超级种码1 小时前
Redis:Redis 数据类型
数据库·redis·缓存
chirrupy_hamal2 小时前
PostgreSQL 中的“脏页(Dirty Pages)”是什么?
数据库·postgresql
陈天伟教授3 小时前
关系数据库-07. 关系操作
数据库·达梦数据库·国产数据库
zzhongcy3 小时前
复合索引 (item1, item2, item3 ) > (?, ?, ?) 不起作用,EXPLAIN 后type=ALL(全表扫描)
android·数据库
Elastic 中国社区官方博客3 小时前
Elastic:DevRel 通讯 — 2026 年 1 月
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
可观测性用观测云3 小时前
AWS RDS 可观测性最佳实践
数据库
程序员小白条3 小时前
面试 Java 基础八股文十问十答第八期
java·开发语言·数据库·spring·面试·职场和发展·毕设
汗流浃背了吧,老弟!3 小时前
向量数据库在RAG中的非必需场景及替代方案
数据库