Метод scalar класса AsyncConnection
Метод scalar класса AsyncConnection
выполняет SQL-запрос асинхронно и возвращает
первое значение первой строки результата.
Метод принимает SQL-выражение или текст запроса,
а также необязательный словарь параметров.
Если результат пуст, метод возвращает None.
Синтаксис
await conn.scalar(statement, [parameters])
Пример
Давайте выполним простой запрос и получим
единственное значение через метод scalar:
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.scalar(text('SELECT 1'))
print(res)
await engine.dispose()
asyncio.run(main())
Результат выполнения кода:
1
Пример
Давайте передадим параметры в запрос и получим значение из таблицы:
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:
await conn.execute(text(
'CREATE TABLE articles (id INTEGER, title TEXT)'
))
await conn.execute(text(
'INSERT INTO articles (id, title) VALUES (:id, :title)'
), {'id': 1, 'title': 'article'})
res = await conn.scalar(text(
'SELECT title FROM articles WHERE id = :id'
), {'id': 1})
print(res)
await engine.dispose()
asyncio.run(main())
Результат выполнения кода:
"article"
Пример
Давайте убедимся, что при отсутствии строк
метод scalar возвращает None:
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:
await conn.execute(text(
'CREATE TABLE articles (id INTEGER, title TEXT)'
))
res = await conn.scalar(text(
'SELECT title FROM articles WHERE id = :id'
), {'id': 1})
print(res)
await engine.dispose()
asyncio.run(main())
Результат выполнения кода:
None
Смотрите также
-
класс
AsyncConnection,
который представляет асинхронное соединение с базой -
метод
execute,
который выполняет SQL-запрос и возвращает результат -
метод
scalars,
который возвращает первый столбец всех строк результата -
метод
stream_scalars,
который асинхронно отдает первый столбец строк