Атрибут echo класса Engine
Атрибут echo класса Engine
возвращает текущее значение флага логирования
SQL-запросов. Значение True включает
вывод всех SQL-инструкций и событий соединения
в стандартный логгер Python, а False
отключает его. Значение задается при создании
движка функцией create_engine через
параметр echo и хранится в атрибуте
как есть.
Синтаксис
engine.echo
Пример
Давайте создадим движок без логирования
и проверим значение атрибута echo:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
print(engine.echo)
Результат выполнения кода:
False
Пример
Теперь включим логирование при создании движка и посмотрим на значение атрибута:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:', echo=True)
print(engine.echo)
Результат выполнения кода:
True
Пример
Атрибут echo можно изменять
уже после создания движка. Давайте сначала
включим логирование, а затем отключим его:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
engine.echo = True
print(engine.echo)
engine.echo = False
print(engine.echo)
Результат выполнения кода:
True
False
Пример
Давайте включим логирование через атрибут
echo и выполним SQL-запрос, чтобы
увидеть вывод в лог:
from sqlalchemy import create_engine, text
engine = create_engine('sqlite:///:memory:')
engine.echo = True
with engine.connect() as conn:
res = conn.execute(text('SELECT 1'))
print(res.scalar())
Итоговый SQL запрос:
SELECT 1