Функция engine_from_config
Функция engine_from_config создает объект
движка для работы с базой данных на основе
словаря конфигурации. Первым параметром
функция принимает словарь с настройками,
вторым - префикс ключей (по умолчанию
sqlalchemy.). Движок управляет пулом
соединений и диалектом СУБД.
Синтаксис
engine_from_config(configuration, [prefix], [**kwargs])
Пример
Давайте создадим движок для базы SQLite
в памяти из словаря настроек:
from sqlalchemy import engine_from_config
config = {
'sqlalchemy.url': 'sqlite:///:memory:'
}
engine = engine_from_config(config, prefix='sqlalchemy.')
print(engine)
Результат выполнения кода:
Engine(sqlite:///:memory:)
Пример
Давайте включим вывод SQL-запросов,
добавив параметр echo в словарь:
from sqlalchemy import engine_from_config, text
config = {
'sqlalchemy.url': 'sqlite:///:memory:',
'sqlalchemy.echo': True
}
engine = engine_from_config(config, prefix='sqlalchemy.')
with engine.connect() as conn:
conn.execute(text('SELECT 1'))
Итоговый SQL запрос:
SELECT 1
Пример
Давайте создадим движок с настройками пула соединений через словарь:
from sqlalchemy import engine_from_config
config = {
'sqlalchemy.url': 'sqlite:///:memory:',
'sqlalchemy.pool_size': 5,
'sqlalchemy.max_overflow': 10
}
engine = engine_from_config(config, prefix='sqlalchemy.')
print(engine.pool.size())
Результат выполнения кода:
5
Пример
Давайте выполним запрос к таблице articles,
созданную через движок из конфигурации:
from sqlalchemy import engine_from_config, text
config = {
'sqlalchemy.url': 'sqlite:///:memory:'
}
engine = engine_from_config(config, prefix='sqlalchemy.')
with engine.connect() as conn:
conn.execute(text('CREATE TABLE articles (id INTEGER PRIMARY KEY, title TEXT)'))
conn.execute(text("INSERT INTO articles (title) VALUES ('article')"))
res = conn.execute(text('SELECT title FROM articles'))
print(res.fetchall())
Результат выполнения кода:
[('article',)]
Смотрите также
-
функцию
create_engine,
которая создает движок из URL подключения -
функцию
make_url,
которая разбирает строку URL подключения -
функцию
create_pool_from_url,
которая создает пул соединений из URL -
класс
QueuePool,
который представляет пул соединений по умолчанию