Как в данном случае правильнее использовать SQL Alchemy?
Есть база данных, в таблице различные записи. В цикле переодически я получаю данные и использую в многих местах возвращенный ORM объект, с методами доступа к нужным атрибутам (колонкам). После выборки я делаю commit для закрытия транзакции. Но после доступа к любому атрибуту объекта видимо открывается новая транзакция, которую никто не закрывает (не писать же мне через каждую строчку session.commit()). В итоге я получаю нежелательный idle in transaction.
В документации сказанно что использовать auto_commit=True не кошерно. В итоге хотелось бы получать result в функции в виде словаря как в Django. Либо как корректо переделать код?
class DBInterface(object):
def __init__(self):
engine = create_engine("...", encoding='utf8', echo=False)
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
def get_project_info(self, project):
query = self.session.query(Projects)
query = query.filter(Projects.name == project).all()
if len(query) > 1:
raise LookupError('...')
result = query[0]
return result