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

相关推荐
IvorySQL13 小时前
PostgreSQL 18 - 时间约束 (Temporal Constraints)
数据库·postgresql·开源
q***614113 小时前
从MySQL迁移到PostgreSQL的完整指南
数据库·mysql·postgresql
N***738513 小时前
SQL锁机制
java·数据库·sql
小羊在奋斗13 小时前
MySQL表的约束:从基础到核心(附场景+案例)
android·数据库·mysql
Wang's Blog13 小时前
MongoDB小课堂: 文档查询之匹配查询与比较操作符深度解析
数据库·mongodb
cookqq14 小时前
mongodb根据索引IXSCAN 查询记录流程
数据结构·数据库·sql·mongodb·nosql
p***323514 小时前
如何使用C#与SQL Server数据库进行交互
数据库·c#·交互
h***346314 小时前
Redis安装教程(Windows版本)
数据库·windows·redis
泡沫·16 小时前
5.MariaDB数据库管理
数据库·mariadb
i***512616 小时前
【数据库】MySQL的安装与卸载
数据库·mysql·adb