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

Метод first_or_404

Метод first_or_404 применяется к объекту запроса SQLAlchemy и возвращает первую запись из результата. Если ни одной записи не найдено, Flask автоматически прерывает выполнение и возвращает ошибку 404. Это удобно для обработчиков, где отсутствие данных должно приводить к стандартному ответу "страница не найдена". Метод не принимает обязательных параметров.

Синтаксис

Model.query.first_or_404()

Пример

Давайте создадим модель и получим первую запись из таблицы. Если записей нет, будет возвращена ошибка 404:

from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db' db = SQLAlchemy(app) class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50)) @app.route('/') def index(): user = User.query.first_or_404() return user.name

Если в таблице есть запись с именем 'abcde', результат выполнения кода:

abcde

Пример

Давайте применим фильтр к запросу и получим первую подходящую запись. Если такой записи нет, вернётся ошибка 404:

from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db' db = SQLAlchemy(app) class Article(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100)) @app.route('/article') def article(): art = Article.query.filter_by(title='article').first_or_404() return art.title

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

<+html+> article <-html+>

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

  • класс SQLAlchemy,
    который интегрирует SQLAlchemy в приложение Flask
  • метод get_or_404,
    который возвращает запись по первичному ключу или ошибку 404
  • метод one_or_404,
    который возвращает единственную запись или ошибку 404
  • метод paginate,
    который возвращает записи с постраничной разбивкой
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить