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

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

Метод first класса Result возвращает первую строку результата запроса в виде объекта Row. Если результат пуст, метод возвращает None. Метод не принимает параметров. Его удобно использовать, когда нужно получить только одну запись из выборки, например при поиске по первичному ключу или при проверке наличия данных.

Синтаксис

res.first()

Пример

Давайте создадим таблицу articles, добавим в неё несколько записей и получим первую строку результата:

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 1', 'text 1', 'active', 10)")) conn.execute(text("INSERT INTO articles (title, text, status, num) VALUES ('article 2', 'text 2', 'draft', 20)")) conn.commit() res = conn.execute(text('SELECT id, title FROM articles ORDER BY id')) row = res.first() print(row)

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

(1, 'article 1')

Пример

Если в таблице нет строк, метод first вернёт 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)')) conn.commit() res = conn.execute(text('SELECT id, title FROM articles')) row = res.first() print(row)

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

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)')) conn.execute(text("INSERT INTO articles (title, text, status, num) VALUES ('article 1', 'text 1', 'active', 10)")) conn.execute(text("INSERT INTO articles (title, text, status, num) VALUES ('article 2', 'text 2', 'draft', 20)")) conn.commit() res = conn.execute(text('SELECT id, title, status FROM articles ORDER BY id')) row = res.first() print(row.id, row.title, row.status)

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

"1 article 1 active"

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

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