我已經習慣了這樣做:試用SqlAlchemy:這是一個好習慣嗎?
from sqlalchemy.orm import sessionmaker
from sqlalchemy.engine import create_engine
Session = sessionmaker()
engine = create_engine("some connection db string", echo=False)
Session.configure(bind=engine)
db_con = Session()
try:
# DB MANIPULATION
finally:
db_con.close()
這是一個良好的習慣?如果是這樣,爲什麼SQLAlchemy的不允許你簡單地做:
with Session() as db_con:
# DB MANIPULATION
?
我不知道'contextlib'。代碼非常乾淨。但是關於問題的第二部分,在你看來,爲什麼'sqlalchemy'的'Session()'對象沒有'__enter __()'和'__exit __()'內建方法? –
@MarcoSulla我對此沒有意見。可能是因爲「關閉」存在。詢問開發人員 – Daenyth