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

相关推荐
晴天¥3 分钟前
Oracle如何在DBeaver上进行登录
数据库·oracle
2301_8002561114 分钟前
事务处理-同步与调度-两阶段锁-隔离级别
数据库·oracle
小罗和阿泽20 分钟前
MySql数据库系列 数据库基础操作
数据库·mysql
周末吃鱼29 分钟前
mysql8.0支持CURRENT_DATE如何写
数据库·sql·mysql
kaico201831 分钟前
MySQL的窗口函数
数据库·mysql
MM_MS43 分钟前
Halcon控制语句
java·大数据·前端·数据库·人工智能·算法·视觉检测
薛定谔的猫19821 小时前
LlamaIndex(三) LlamaHub工具集
数据库·mysql·llamahub
小画家~1 小时前
第四十六: channel 高级使用
java·前端·数据库
晴天¥1 小时前
了解Oracle中的体系结构
数据库
DemonAvenger1 小时前
Redis慢查询分析与优化:性能瓶颈排查实战指南
数据库·redis·性能优化