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

相关推荐
RPA机器人就选八爪鱼11 分钟前
RPA财务机器人:重塑财务效率,数字化转型的核心利器
大数据·数据库·人工智能·机器人·rpa
小猪绝不放弃.22 分钟前
数据库视图的作用分析
数据库
k***121722 分钟前
从 SQL 语句到数据库操作
数据库·sql·oracle
a***113526 分钟前
使用Django Rest Framework构建API
数据库·django·sqlite
KaiwuDB1 小时前
KWDB 3.0.0 正式发布!年度重磅升级,重塑 AIoT 产业智能数据基座
数据库
凯子坚持 c1 小时前
openGauss向量数据库技术演进与AI应用生态全景
数据库·人工智能
z***56561 小时前
【玩转全栈】----Django模板语法、请求与响应
数据库·python·django
韩立学长1 小时前
【开题答辩实录分享】以《智慧农业信息化服务平台小程序》为例进行答辩实录分享
数据库·spring boot·小程序
一 乐2 小时前
农产品电商|基于SprinBoot+vue的农产品电商系统(源码+数据库+文档)
java·前端·javascript·数据库·vue.js·spring boot
TDengine (老段)2 小时前
TDengine IDMP 赋能新能源:光伏电站智能运维实践
大数据·运维·数据库·物联网·时序数据库·tdengine·涛思数据