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

相关推荐
寒山独见君~10 小时前
自动化-消息推送Server酱3,APP推送
运维·数据库·python·自动化·通知
qq_3926906610 小时前
Go语言怎么做DNS查询_Go语言DNS域名解析教程【完整】
jvm·数据库·python
m0_6315298210 小时前
PHP 中 OR 运算符逻辑误用的典型陷阱与正确写法
jvm·数据库·python
步辞10 小时前
如何用 style.setProperty 修改带有优先级的 CSS 变量属性
jvm·数据库·python
xxjj998a10 小时前
Laravel7.x核心特性全解析
数据库·mysql·adb
让我上个超影吧10 小时前
【MYSQL】索引下推
java·数据库·mysql
m0_6315298210 小时前
CSS如何利用Less快速生成颜色渐变背景_使用混合函数生成多样渐变
jvm·数据库·python
重生之我是Java开发战士10 小时前
【MySQL】 索引的底层原理与使用:B+树、数据页与 InnoDB
数据库·b树·mysql
m0_6245785910 小时前
Laravel Blade 中高效筛选并限制关联分类数据的实践方案
jvm·数据库·python
m0_5913647310 小时前
golang如何实现coredump分析_golang coredump分析实现策略
jvm·数据库·python