Атрибут dialect класса AsyncEngine
Атрибут dialect класса AsyncEngine возвращает
объект диалекта, связанный с асинхронным движком.
Диалект описывает особенности конкретной СУБД:
имя драйвера, версию, правила экранирования
идентификаторов, поддержку функций и типов данных.
Атрибут доступен только для чтения и не принимает
параметров.
Синтаксис
async_engine.dialect
Пример
Давайте создадим асинхронный движок для базы
SQLite в памяти и выведем информацию
о его диалекте:
from sqlalchemy.ext.asyncio import create_async_engine
engine = create_async_engine('sqlite+aiosqlite:///:memory:')
print(engine.dialect)
print(engine.dialect.name)
print(engine.dialect.driver)
Результат выполнения кода:
"<sqlalchemy.dialects.sqlite.aiosqlite.SQLiteDialect_aiosqlite object at 0x...>"
"sqlite"
"aiosqlite"
Пример
Давайте проверим имя СУБД через атрибут name
диалекта и выполним простой запрос:
import asyncio
from sqlalchemy import text
from sqlalchemy.ext.asyncio import create_async_engine
async def main():
engine = create_async_engine('sqlite+aiosqlite:///:memory:')
print(f"dialect name: {engine.dialect.name}")
async with engine.connect() as conn:
res = await conn.execute(text('SELECT 1'))
print(res.scalar())
await engine.dispose()
asyncio.run(main())
Результат выполнения кода:
"dialect name: sqlite"
1
Пример
Давайте сравним диалект асинхронного движка
с диалектом синхронного движка через атрибут
sync_engine:
from sqlalchemy.ext.asyncio import create_async_engine
engine = create_async_engine('sqlite+aiosqlite:///:memory:')
print(engine.dialect is engine.sync_engine.dialect)
Результат выполнения кода:
True
Смотрите также
-
класс
AsyncEngine,
который представляет асинхронный движок базы данных -
атрибут
sync_engine,
который возвращает синхронный движок -
атрибут
url,
который хранит URL подключения к базе -
атрибут
pool,
который представляет пул соединений