Задать вопрос
th3mis
@th3mis

Как правильно использовать SQL Alchemy?

Как в данном случае правильнее использовать 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
  • Вопрос задан
  • 240 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы