标签: python sqlalchemy mysql-python
我可以为SQLAlchemy Core连接使用上下文管理器吗?换句话说,是
conn = engine.connect() conn.execute('SELECT * FROM FOO') conn.close()
与
with engine.connect() as conn: conn.execute('SELECT * FROM FOO')
我不需要在上下文管理器出口处检查提交,回滚等。
答案 0 :(得分:8)
您可以使用连接作为上下文管理器。
请参阅连接的__enter__和__exit__方法,了解其实现方法。 __enter__只会返回self和__exit__次来电。
__enter__
__exit__
self
或者你可以尝试一下:
from sqlalchemy import create_engine engine = create_engine("sqlite:///:memory:") with engine.connect() as conn: print(conn.closed) print(conn.closed)
输出:
False True