Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
376 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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить