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

Метод scalar класса Result

Метод scalar класса Result возвращает первое значение из первой строки результата запроса. Если строк нет, метод вернет None. Метод удобен, когда запрос возвращает ровно одно значение, например, при подсчете строк или получении одного поля. Параметров метод не принимает.

Синтаксис

res.scalar()

Пример

Давайте создадим таблицу и вставим в нее одну запись, а затем получим значение поля title с помощью метода scalar:

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

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

"article"

Пример

Давайте получим количество строк в таблице с помощью агрегатной функции и метода scalar:

from sqlalchemy import create_engine, text engine = create_engine('sqlite:///:memory:') with engine.connect() as conn: conn.execute(text('CREATE TABLE articles (id INTEGER PRIMARY KEY, title TEXT, text TEXT, status TEXT, num INTEGER)')) conn.execute(text("INSERT INTO articles (title, text, status, num) VALUES ('article', 'text', 'active', 1)")) conn.execute(text("INSERT INTO articles (title, text, status, num) VALUES ('article', 'text', 'active', 2)")) res = conn.execute(text('SELECT COUNT(*) FROM articles')) print(res.scalar())

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

2

Пример

Давайте убедимся, что при отсутствии строк метод scalar возвращает 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 PRIMARY KEY, title TEXT, text TEXT, status TEXT, num INTEGER)')) res = conn.execute(text('SELECT title FROM articles')) print(res.scalar())

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

None

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

  • класс Result,
    который представляет результат запроса
  • метод scalar_one,
    который возвращает ровно одно значение
  • метод scalar_one_or_none,
    который возвращает одно значение или None
  • метод first,
    который возвращает первую строку результата
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить