SQLAlchemy 核心连接上下文管理器
Posted
技术标签:
【中文标题】SQLAlchemy 核心连接上下文管理器【英文标题】:SQLAlchemy Core Connection Context Manager 【发布时间】:2013-07-04 01:43:59 【问题描述】:我可以为 SQLAlchemy Core 连接使用上下文管理器吗?换句话说,是
conn = engine.connect()
conn.execute('SELECT * FROM FOO')
conn.close()
和
一样with engine.connect() as conn:
conn.execute('SELECT * FROM FOO')
我不需要在上下文管理器退出时对提交、回滚等进行任何检查。
【问题讨论】:
【参考方案1】:您可以将连接用作上下文管理器。
请参阅连接的__enter__
和__exit__
方法以了解其实现方式。 __enter__
只返回 self
和 __exit__
调用关闭。
或者你可以试试:
from sqlalchemy import create_engine
engine = create_engine("sqlite:///:memory:")
with engine.connect() as conn:
print(conn.closed)
print(conn.closed)
输出:
错误的 真的【讨论】:
以上是关于SQLAlchemy 核心连接上下文管理器的主要内容,如果未能解决你的问题,请参考以下文章
使用flask-sqlalchemy连接mysql遇到的问题
Python核心技术与实战——二一|巧用上下文管理器和with语句精简代码
flask-sqlalchemy 外连接的 Flask-marshmallow 转储返回空