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

Метод 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,
    который асинхронно отдает первый столбец строк
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить