Атрибут dialect класса Connection
Атрибут dialect класса Connection возвращает объект
диалекта, связанный с текущим соединением. Диалект описывает
конкретную реализацию СУБД: драйвер, версию сервера, особенности
генерации SQL и правила работы с типами данных. Через этот атрибут
можно получить имя диалекта, версию драйвера и другие
характеристики подключения.
Синтаксис
connection.dialect
Пример
Давайте создадим соединение и выведем объект диалекта:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
print(conn.dialect)
Результат выполнения кода:
"<sqlalchemy.dialects.sqlite.pysqlite.SQLiteDialect_pysqlite object at 0x...>"
Пример
Давайте получим имя диалекта через его атрибут
name:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
print(conn.dialect.name)
Результат выполнения кода:
"sqlite"
Пример
Давайте выведем версию драйвера и версию сервера базы данных:
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
print(conn.dialect.driver)
print(conn.dialect.server_version_info)
Результат выполнения кода:
"pysqlite"
"(3, 45, 1)"
Пример
Давайте выполним запрос к таблице articles и проверим, какой диалект обрабатывает соединение:
from sqlalchemy import create_engine, text
engine = create_engine('sqlite:///:memory:')
with engine.connect() as conn:
conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)'))
conn.execute(text("INSERT INTO articles VALUES (1, 'article')"))
res = conn.execute(text('SELECT title FROM articles'))
print(conn.dialect.name, res.fetchall())
Результат выполнения кода:
"sqlite [('article',)]"
Смотрите также
-
класс
Connection,
который представляет соединение с базой данных -
атрибут
engine,
который возвращает движок текущего соединения -
метод
execute,
который выполняет SQL-запросы через соединение -
атрибут
info,
который хранит пользовательские данные соединения