w33*_*zel 5 python session sqlalchemy contextmanager
AttributeError: __enter__当我尝试使用像本指南中的 sqlalchemy会话时,我得到这个.
我的代码:
Session = scoped_session(sessionmaker(autoflush=True, autocommit=False, bind=engine))
@contextmanager
def session_scope():
session = Session()
try:
yield session
session.commit()
except:
session.rollback()
raise
finally:
session.close()
class SomeClass:
def __init__(self):
self.session_scope = session_scope
def something_with_session(self):
with self.session_scope as session: <-- error
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我正在使用python 3.6
swi*_*mer 11
对于那些习惯使用 SQLAlchemy 1.4 方式通过上下文管理器运行会话构建/关闭过程的人来说,如下所示:
with Session() as session:
# Do something
Run Code Online (Sandbox Code Playgroud)
如果您收到AttributeError: __enter__,请检查您环境中的 SQLAlchemy 版本是否正确SQLAlchemy>=1.4。更多详细信息请参阅此答案。
tde*_*ney 10
您必须调用该函数来获取上下文
with self.session_scope() as session:
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10449 次 |
| 最近记录: |