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

相关推荐
好奇的菜鸟34 分钟前
在IDEA中连接达梦数据库:详细配置指南
java·数据库·intellij-idea
CL_IN3 小时前
高效集成销售订单数据到MySQL的方法
android·数据库·mysql
架构文摘JGWZ3 小时前
SQLite?低调不是小众...
数据库·后端·学习·sqlite
划水哥~3 小时前
SQL99 多表查询
数据库·sql
王ASC3 小时前
kettle的转换中sql不按设计顺序执行原因分析与解决办法
数据库·sql
Elastic 中国社区官方博客3 小时前
Elasticsearch:语义文本 - 更简单、更好、更精炼、更强大 8.18
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
老大白菜4 小时前
DeepSeek API 客户端使用文档
数据库
元气满满的热码式4 小时前
MySQL启动报错解决
运维·数据库·mysql
XMYX-04 小时前
解决 Redis 后台持久化失败的问题:内存不足导致 fork 失败
java·数据库·redis
猿小喵4 小时前
MySQL异常SQL排查
数据库·sql·mysql