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

Метод all класса ScalarResult

Метод all класса ScalarResult возвращает все строки результата запроса в виде списка. В отличие от метода fetchall, который возвращает список кортежей Row, метод all возвращает список скалярных значений - то есть первых элементов каждой строки. Метод не принимает параметров и полностью вычитывает результат, после чего курсор закрывается. Если строк нет, возвращается пустой список.

Синтаксис

ScalarResult.all()

Пример

Давайте создадим таблицу articles и получим все заголовки статей через метод all:

from sqlalchemy import create_engine, select from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: session.add_all([ Article(title='article 1'), Article(title='article 2'), Article(title='article 3'), ]) session.commit() res = session.scalars(select(Article.title)) print(res.all())

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

['article 1', 'article 2', 'article 3']

Пример

Давайте получим все идентификаторы статей в виде списка целых чисел:

from sqlalchemy import create_engine, select from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: session.add_all([ Article(title='article 1'), Article(title='article 2'), ]) session.commit() res = session.scalars(select(Article.id)) print(res.all())

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

[1, 2]

Пример

Давайте убедимся, что при отсутствии строк метод all возвращает пустой список:

from sqlalchemy import create_engine, select from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, Session class Base(DeclarativeBase): pass class Article(Base): __tablename__ = 'articles' id: Mapped[int] = mapped_column(primary_key=True) title: Mapped[str] engine = create_engine('sqlite:///:memory:') Base.metadata.create_all(engine) with Session(engine) as session: res = session.scalars(select(Article.title)) print(res.all())

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

[]

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

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