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

Класс ScalarResult

Класс ScalarResult представляет собой обертку над результатом выполнения запроса, возвращающую скалярные значения (отдельные колонки) вместо полных строк результата. Объект этого класса возвращается методами scalars и scalar объекта Result. Класс предоставляет методы для итерации, получения первого элемента, единственного элемента и проверки наличия результатов.

Синтаксис

ScalarResult

Пример

Давайте создадим таблицу и получим скалярный результат с помощью метода scalars:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)')) conn.execute(text("INSERT INTO articles VALUES (1, 'article')")) res = conn.execute(text('SELECT title FROM articles')).scalars() print(res)

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

<sqlalchemy.engine.result.ScalarResult object at 0x...>

Пример

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

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)')) conn.execute(text("INSERT INTO articles VALUES (1, 'article')")) conn.execute(text("INSERT INTO articles VALUES (2, 'user')")) res = conn.execute(text('SELECT title FROM articles')).scalars() for title in res: print(title)

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

'article' 'user'

Пример

Давайте получим первый элемент с помощью метода first:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)')) conn.execute(text("INSERT INTO articles VALUES (1, 'article')")) conn.execute(text("INSERT INTO articles VALUES (2, 'user')")) res = conn.execute(text('SELECT title FROM articles')).scalars() print(res.first())

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

'article'

Пример

Давайте получим единственный элемент с помощью метода one:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)')) conn.execute(text("INSERT INTO articles VALUES (1, 'article')")) res = conn.execute(text('SELECT title FROM articles')).scalars() print(res.one())

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

'article'

Пример

Давайте получим единственный элемент или None с помощью метода one_or_none:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)')) conn.execute(text("INSERT INTO articles VALUES (1, 'article')")) res = conn.execute(text('SELECT title FROM articles WHERE id = 999')).scalars() print(res.one_or_none())

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

None

Пример

Давайте получим все элементы в виде списка с помощью метода all:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text('CREATE TABLE articles (id INTEGER, title TEXT)')) conn.execute(text("INSERT INTO articles VALUES (1, 'article')")) conn.execute(text("INSERT INTO articles VALUES (2, 'user')")) conn.execute(text("INSERT INTO articles VALUES (3, 'sqlite:///:memory:')")) res = conn.execute(text('SELECT title FROM articles')).scalars() print(res.all())

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

['article', 'user', 'sqlite:///:memory:']

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

  • класс ScalarResult,
    который представляет скалярный результат запроса
  • метод all,
    который возвращает все элементы списком
  • метод first,
    который возвращает первый элемент результата
  • метод one,
    который возвращает единственный элемент результата
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить