关闭会话后使用SQLAlchemy实例

2024-06-08 20:50:34 发布

您现在位置:Python中文网/ 问答频道 /正文

关闭会话后是否可以访问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)

Tags: 实例代码程序数据库示例属性sqlalchemysession