Метод close класса AsyncConnection
Метод close класса AsyncConnection
закрывает асинхронное соединение с базой данных.
После вызова метода соединение становится
недействительным, а все связанные с ним ресурсы
освобождаются. Параметров метод не принимает.
Метод является асинхронным, поэтому вызывается
через await.
Обычно метод close используется совместно
с асинхронным контекстным менеджером async with,
который вызывает его автоматически при выходе
из блока. Однако метод можно вызвать и вручную,
когда соединение нужно закрыть досрочно.
Синтаксис
await conn.close()
Пример
Давайте откроем асинхронное соединение с базой
SQLite в памяти и закроем его методом
close:
import asyncio
from sqlalchemy.ext.asyncio import create_async_engine
async def main():
engine = create_async_engine('sqlite+aiosqlite:///:memory:')
conn = await engine.connect()
print(conn.closed)
await conn.close()
print(conn.closed)
await engine.dispose()
asyncio.run(main())
Результат выполнения кода:
False
True
Пример
Давайте выполним запрос, а затем закроем соединение
методом close:
import asyncio
from sqlalchemy import text
from sqlalchemy.ext.asyncio import create_async_engine
async def main():
engine = create_async_engine('sqlite+aiosqlite:///:memory:')
conn = await engine.connect()
res = await conn.execute(text('SELECT 1'))
print(res.scalar())
await conn.close()
await engine.dispose()
asyncio.run(main())
Результат выполнения кода:
1
Пример
Давайте используем метод close вместе
с асинхронным контекстным менеджером, который
вызывает его автоматически:
import asyncio
from sqlalchemy import text
from sqlalchemy.ext.asyncio import create_async_engine
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())
print(conn.closed)
await engine.dispose()
asyncio.run(main())
Результат выполнения кода:
1
True
Смотрите также
-
класс
AsyncConnection,
который представляет асинхронное соединение -
метод
execute,
который выполняет SQL-запросы асинхронно -
метод
commit,
который фиксирует текущую транзакцию -
метод
rollback,
который откатывает текущую транзакцию