Я привык делать это:try-finally с 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