РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
546 of 711 menu

Метод connect класса AsyncEngine

Метод connect класса AsyncEngine открывает асинхронное соединение с базой данных и возвращает объект AsyncConnection. Соединение получается из пула соединений, которым управляет движок. Метод является асинхронным, поэтому его нужно вызывать через await. Параметров метод не принимает. Полученное соединение следует закрывать после завершения работы, например, через асинхронный контекстный менеджер async with.

Синтаксис

await engine.connect()

Пример

Давайте создадим асинхронный движок для базы SQLite в памяти и откроем соединение:

import asyncio from sqlalchemy.ext.asyncio import create_async_engine from sqlalchemy import text async def main(): engine = create_async_engine('sqlite+aiosqlite:///:memory:') async with engine.connect() as conn: res = await conn.execute(text('SELECT 1')) print(res.scalar()) await engine.dispose() asyncio.run(main())

Результат выполнения кода:

1

Пример

Давайте откроем соединение без контекстного менеджера и закроем его вручную методом close:

import asyncio from sqlalchemy.ext.asyncio import create_async_engine from sqlalchemy import text async def main(): engine = create_async_engine('sqlite+aiosqlite:///:memory:') conn = await engine.connect() try: res = await conn.execute(text('SELECT 1')) print(res.scalar()) finally: await conn.close() await engine.dispose() asyncio.run(main())

Результат выполнения кода:

1

Пример

Давайте выполним запрос к таблице articles через открытое соединение:

import asyncio from sqlalchemy.ext.asyncio import create_async_engine from sqlalchemy import text async def main(): engine = create_async_engine('sqlite+aiosqlite:///:memory:') async with engine.connect() as conn: await conn.execute(text( 'CREATE TABLE articles (id INTEGER PRIMARY KEY, title TEXT)' )) await conn.execute(text( "INSERT INTO articles (title) VALUES ('article')" )) await conn.commit() res = await conn.execute(text('SELECT title FROM articles')) for row in res: print(row.title) await engine.dispose() asyncio.run(main())

Результат выполнения кода:

"article"

Смотрите также

  • класс AsyncEngine,
    который представляет асинхронный движок базы данных
  • метод begin,
    который открывает соединение с транзакцией
  • метод raw_connection,
    который возвращает низкоуровневое соединение драйвера
  • метод dispose,
    который закрывает пул соединений движка
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить