关闭会话后是否可以访问SQLAlchemy的实例? 我只想访问实例属性而不更改它们的值。在
在执行期间使用单个会话可以解决问题,但这是一个好的做法吗?(考虑到该程序可能运行数天)
示例代码:
在积垢在
@contextmanager
def session_scope():
session = Session()
try:
yield session
session.commit()
except Exception:
session.rollback()
raise
finally:
session.close()
在访问数据库.py在
^{pr2}$当我返回数据库中的所有用户时,会出现以下错误:
sqlalchemy.orm.exc.DetachedInstanceError: Instance <User at 0x31df350> is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: http://sqlalche.me/e/bhk3)
像}这样的方法会使所有对象过期。要刷新对象,必须使用
commit()
或{session.refresh(users[0])
。然后您将能够再次访问对象属性。在相关问题 更多 >
编程相关推荐