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 分钟前
w269基于spring boot + vue 候鸟监测数据管理系统
java·数据库·spring boot·spring·intellij-idea
ClouGence6 分钟前
MySQL 到 StarRocks 数据迁移同步:同步方案与实践指南
数据库·mysql
行业研究员15 分钟前
当数据生产者变成 Agent,数据库底座如何重构?
大数据·数据库·重构
人工智能培训21 分钟前
破解数据发展瓶颈 激活数字经济新动能
大数据·数据库·人工智能·深度学习·神经网络·机器学习·生成对抗网络
1234567890@world1 小时前
知识管理 | 数字化 | APQC
大数据·数据库·人工智能
倒流时光三十年2 小时前
PostgreSQL JSONB 操作符详解
大数据·数据库·postgresql
旧曲重听12 小时前
为什么现在 RAG 越少越少提及了
数据库·程序人生·职场和发展·agent
Nturmoils3 小时前
订单查询丢数据,查了半天原来是 WHERE 惹的祸
数据库·后端
ATA88883 小时前
数据库管理工具的数据安全机制对比:权限管控与审计
数据库·人工智能·数据分析·数据库管理
麦聪聊数据3 小时前
业务自助取数(下):安全可控前提下,实现取数效率百倍提升
数据库·sql