Функция create_pool_from_url
Функция create_pool_from_url создает объект
пула соединений на основе строки URL подключения
к базе данных. Первым параметром функция принимает
строку URL. Вторым необязательным параметром
передается класс пула, например QueuePool,
NullPool или StaticPool. Функция
возвращает экземпляр пула, который можно
использовать отдельно от движка.
Синтаксис
create_pool_from_url(url, [poolclass])
Пример
Давайте создадим пул соединений для базы
SQLite в памяти:
from sqlalchemy import create_pool_from_url
pool = create_pool_from_url('sqlite:///:memory:')
print(pool)
Результат выполнения кода:
"<sqlalchemy.pool.impl.SingletonThreadPool object at 0x...>"
Пример
Давайте явно укажем класс пула StaticPool,
чтобы соединение переиспользовалось:
from sqlalchemy import create_pool_from_url
from sqlalchemy.pool import StaticPool
pool = create_pool_from_url(
'sqlite:///:memory:',
poolclass=StaticPool
)
print(pool)
Результат выполнения кода:
"<sqlalchemy.pool.impl.StaticPool object at 0x...>"
Пример
Давайте получим соединение из пула и выполним простой SQL-запрос:
from sqlalchemy import create_pool_from_url, text
pool = create_pool_from_url('sqlite:///:memory:')
conn = pool.connect()
res = conn.execute(text('SELECT 1'))
print(res.scalar())
conn.close()
Результат выполнения кода:
"1"
Итоговый SQL запрос:
SELECT 1
Смотрите также
-
функцию
create_engine,
которая создает движок базы данных -
класс
QueuePool,
который представляет стандартный пул соединений -
класс
NullPool,
который отключает пулирование соединений -
класс
StaticPool,
который хранит одно общее соединение