Submitted by martinez on Sun, 09/22/2019 - 02:01
Пример 1 - прочитать из базы значение
команда |
состояние соединения |
последняя SQL |
комментарии |
---|
engine = create_engine(f'postgresql://...') |
нет соединения |
|
|
result = engine.execute("select name from host LIMIT 10") |
idle in transaction |
select name from host LIMIT 10 |
данные уже в result |
Submitted by martinez on Sat, 09/21/2019 - 10:08
Engine.connect() vs Engine.raw_connection()
первый возвращает класс sqlalchemy.engine.base.Connection, второй sqlalchemy.pool.base._ConnectionFairy. Оба являются прокси к настоящему соединению, у обоих close() просто возвращает соединение в пул, однако второе считается более близким к DBAPI. например только из второго можно получить курсор.
Submitted by martinez on Fri, 09/20/2019 - 19:49
Применение SQLAlchemy Core с точки зрения образования соединений и транзакций с базой.
Как сказано в документации, есть Engine, который скрывает за собой пул и диалект.
подход такой: нужно брать соединения, делать некий логически связанный блок действий, и вызывать conn.close(), которое возвращает соединение в пул.
соединение находится всегда в транзакции.
В процессе работы имеете действие с
если использовать соединения для выборки данных и оставить его у себя