РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
551 of 711 menu

Атрибут sync_engine

Атрибут sync_engine класса AsyncEngine возвращает синхронный движок Engine, который лежит в основе асинхронного движка. Асинхронный движок не существует сам по себе: внутри него всегда работает обычный синхронный движок, который управляет пулом соединений и диалектом СУБД. Атрибут sync_engine дает доступ к этому внутреннему движку. Это полезно, когда нужно выполнить синхронную операцию, получить информацию о диалекте или пуле соединений, а также при работе с инструментами, которые ожидают обычный Engine.

Атрибут не принимает параметров и доступен только для чтения.

Синтаксис

async_engine.sync_engine

Пример

Давайте создадим асинхронный движок для базы SQLite в памяти и получим его синхронный движок:

from sqlalchemy.ext.asyncio import create_async_engine async_engine = create_async_engine('sqlite+aiosqlite:///:memory:') sync_engine = async_engine.sync_engine print(sync_engine)

Результат выполнения кода:

"Engine(sqlite+aiosqlite:///:memory:)"

Пример

Давайте убедимся, что возвращаемый объект является экземпляром синхронного класса Engine:

from sqlalchemy import Engine from sqlalchemy.ext.asyncio import create_async_engine async_engine = create_async_engine('sqlite+aiosqlite:///:memory:') sync_engine = async_engine.sync_engine print(isinstance(sync_engine, Engine))

Результат выполнения кода:

"True"

Пример

Давайте через синхронный движок получим информацию о диалекте и пуле соединений:

from sqlalchemy.ext.asyncio import create_async_engine async_engine = create_async_engine('sqlite+aiosqlite:///:memory:') sync_engine = async_engine.sync_engine print(sync_engine.dialect.name) print(sync_engine.pool)

Результат выполнения кода:

"sqlite" "<sqlalchemy.pool.impl.AsyncAdaptedQueuePool object at ...>"

Пример

Давайте выполним синхронный SQL-запрос через движок из атрибута sync_engine:

from sqlalchemy import text from sqlalchemy.ext.asyncio import create_async_engine async_engine = create_async_engine('sqlite+aiosqlite:///:memory:') sync_engine = async_engine.sync_engine with sync_engine.connect() as conn: res = conn.execute(text('SELECT 1 AS num')) print(res.fetchall())

Итоговый SQL запрос:

SELECT 1 AS num

Результат выполнения кода:

[(1,)]

Смотрите также

  • класс AsyncEngine,
    который представляет асинхронный движок базы данных
  • атрибут dialect,
    который возвращает диалект асинхронного движка
  • атрибут pool,
    который возвращает пул соединений асинхронного движка
  • метод dispose,
    который закрывает пул соединений движка
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить