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

Класс ValidationError

Класс ValidationError применяется для создания пользовательских ошибок валидации в формах Flask. Он позволяет прервать процесс валидации поля и добавить собственное сообщение об ошибке в список errors формы. Класс наследуется от встроенного исключения Exception и принимает первым параметром текст сообщения об ошибке.

Синтаксис

from wtforms.validators import ValidationError raise ValidationError(message)

Пример

Давайте создадим кастомный валидатор, который выбрасывает исключение ValidationError, если поле содержит слово 'abcde':

from flask import Flask, render_template from flask_wtf import FlaskForm from wtforms import StringField, SubmitField from wtforms.validators import ValidationError app = Flask(__name__) app.config['SECRET_KEY'] = 'secret' def check_abcde(form, field): if field.data == 'abcde': raise ValidationError('Invalid value') class MyForm(FlaskForm): name = StringField('Name', validators=[check_abcde]) submit = SubmitField('Send') @app.route('/', methods=['GET', 'POST']) def index(): form = MyForm() if form.validate_on_submit(): return 'Form submitted' return render_template('index.html', form=form)

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

['Invalid value']

Пример

Давайте выведем сообщение об ошибке в шаблоне:

<form method="post"> {{ form.hidden_tag() }} <p>{{ form.name.label }} {{ form.name() }}</p> {% for error in form.name.errors %} <p>{{ error }}</p> {% endfor %} <p>{{ form.submit() }}</p> </form>

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

<p>Invalid value</p>

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

  • класс Form,
    который представляет форму Flask-WTF
  • метод validate_on_submit,
    который проверяет отправку и валидность формы
  • атрибут errors,
    который хранит список ошибок валидации
  • валидатор DataRequired,
    который проверяет обязательное заполнение поля
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить