Атрибут dialect класса Engine
Атрибут dialect класса Engine возвращает
объект диалекта, связанный с движком. Диалект описывает
особенности конкретной СУБД: синтаксис SQL, типы данных,
правила экранирования имен, поведение драйвера и многое
другое. Атрибут доступен только для чтения и создается
автоматически при вызове функции create_engine
на основе переданного URL подключения. Через диалект можно
узнать имя СУБД, имя драйвера, версию сервера и другие
параметры соединения.
Синтаксис
engine.dialect
Пример
Давайте создадим движок для базы SQLite в памяти
и выведем объект диалекта:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
print(engine.dialect)
Результат выполнения кода:
"<sqlalchemy.dialects.sqlite.pysqlite.SQLiteDialect_pysqlite object at 0x...>"
Пример
Давайте выведем имя СУБД и имя драйвера через атрибуты
диалекта name и driver:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
print(engine.dialect.name)
print(engine.dialect.driver)
Результат выполнения кода:
"sqlite"
"pysqlite"
Пример
Давайте проверим версию сервера базы данных через
метод server_version_info диалекта:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
print(engine.dialect.server_version_info)
Результат выполнения кода:
None
Пример
Давайте посмотрим, как диалект преобразует типы данных.
Получим тип для колонки через метод type_descriptor:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
col_type = engine.dialect.type_descriptor(
__import__('sqlalchemy').Integer()
)
print(col_type)
Результат выполнения кода:
"INTEGER"