解决方案:
在初始化数据库的代码中,将
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
之后会主动将同一个session
在commit
之前查询得到的ORM
对象的_sa_instance_state.expire
属性设置为Flase
,再次读取该对象属性时将重载这个对象,方法是重新调用之前的查询语句。