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

相关推荐
秋田君31 分钟前
QT_绘图原理双缓冲机制
服务器·数据库·qt
一条闲鱼_mytube1 小时前
深入理解 Pinecone 向量数据库:从云服务到索引原理,一篇讲透
数据库
许彰午1 小时前
政务低代码平台实战⑤:双输出模式——存DB与导出JSP的完整链路
数据库·低代码·政务
南京码讯光电技术有限公司2 小时前
What Does Ex tb IIIC T80°C Db Mean?
服务器·网络·数据库
2501_937860942 小时前
MySQL CRUD 增删改查
数据库·mysql
做萤石二次开发的哈哈2 小时前
萤石蓝海AIoT一站式工作台计费说明
网络·数据库·萤石开放平台·蓝海aiot一站式工作台
竹枝溪2 小时前
MySQL数据库零基础入门
数据库·sql·mysql·navicat·ddl·dml·dql
龙仔7253 小时前
人大金仓Kingbase V8 自动全量备份部署完整笔记
数据库·笔记·备份·人大金仓
王志来137944730083 小时前
从选型到交付,工控服务器机箱一站式采购平台匀天如何实现服务闭环?
数据库
ShuiShenHuoLe3 小时前
HmarkX(码笺)的本地数据库模块重构实战
数据库·oracle·重构