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

相关推荐
卓怡学长1 分钟前
m319个人网站的设计与实现
java·数据库·spring·tomcat·maven·intellij-idea
羊小蜜.6 分钟前
Mysql 07: 正则表达式查询(REGEXP)全解
数据库·mysql·正则表达式
Dxy12393102167 分钟前
正则表达式如何匹配提取文章日期
数据库·mysql·正则表达式
小陈工22 分钟前
Python Web开发入门(十六):前后端分离架构设计——从“各自为政”到“高效协同”
开发语言·前端·数据库·人工智能·python
APguantou28 分钟前
NCRE-三级数据库技术-第13章-大规模数据库架构
数据库·数据库架构
前进的李工35 分钟前
MySQL用户管理与权限控制指南(含底层架构说明)
开发语言·数据库·sql·mysql·架构
刘~浪地球37 分钟前
Redis 从入门到精通(十一):持久化配置
数据库·redis·缓存
正在走向自律1 小时前
深度剖析 KES 行标识体系:OID 与 ROWID 核心原理、实战案例及性能优化
数据库·oid·kes·rowid
一直都在5721 小时前
MySQL索引优化
android·数据库·mysql
wjp@0011 小时前
SQL server导出导入数据
运维·服务器·数据库