Атрибут info класса Connection
Атрибут info класса Connection предоставляет
словарь, в котором можно хранить произвольные
пользовательские данные, связанные с конкретным
соединением. Этот словарь создается автоматически
при открытии соединения и доступен только для
чтения в том смысле, что ссылка на словарь не
меняется, но его содержимое можно свободно
изменять. Атрибут не принимает параметров и
возвращает объект типа dict.
Синтаксис
connection.info
Пример
Давайте откроем соединение с базой SQLite
в памяти и посмотрим на содержимое атрибута
info по умолчанию:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
print(conn.info)
Результат выполнения кода:
{}
Пример
Давайте запишем в словарь info собственные
данные и прочитаем их обратно:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn.info['user'] = 'article'
conn.info['status'] = 'active'
print(conn.info['user'])
print(conn.info['status'])
print(conn.info)
Результат выполнения кода:
article
active
{'user': 'article', 'status': 'active'}
Пример
Давайте убедимся, что словарь info привязан
именно к конкретному соединению и не сохраняется
после его закрытия:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn.info['num'] = 10
print(conn.info)
with engine.connect() as conn:
print(conn.info)
Результат выполнения кода:
{'num': 10}
{}
Пример
Давайте выполним SQL-запрос и сохраним информацию
о нем в словаре info:
from sqlalchemy import create_engine, text
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn.info['query'] = 'SELECT 1'
res = conn.execute(text(conn.info['query']))
print(res.scalar())
print(conn.info)
Результат выполнения кода:
1
{'query': 'SELECT 1'}
Итоговый SQL запрос:
SELECT 1
Смотрите также
-
класс
Connection,
который представляет соединение с базой данных -
метод
execute,
который выполняет SQL-запросы через соединение -
атрибут
engine,
который возвращает движок соединения -
атрибут
dialect,
который возвращает диалект базы данных