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

Правило DataRequired

Правило DataRequired применяется к полям формы Flask-WTF и проверяет, что пользователь ввёл в поле хоть какое-то значение. Если поле пустое, валидация не проходит, а в атрибут errors формы попадает сообщение об ошибке. В качестве необязательного параметра можно передать текст сообщения message.

Синтаксис

from wtforms.validators import DataRequired DataRequired(message=None)

Пример

Давайте создадим форму с обязательным полем name и проверим её валидацию:

from flask import Flask, render_template from flask_wtf import FlaskForm from wtforms import StringField, SubmitField from wtforms.validators import DataRequired app = Flask(__name__) app.config['SECRET_KEY'] = 'secret' class MyForm(FlaskForm): name = StringField('Name', validators=[DataRequired()]) submit = SubmitField('Send') @app.route('/', methods=['GET', 'POST']) def index(): form = MyForm() res = form.validate_on_submit() return render_template('index.html', form=form, res=res)

Давайте выведем форму и результат проверки в шаблоне:

<form method="post"> {{ form.hidden_tag() }} <p>{{ form.name.label }} {{ form.name() }}</p> <p>{{ form.submit() }}</p> </form> <p>{{ res }}</p>

Результат выполнения кода при отправке пустой формы:

False

Пример

Давайте передадим своё сообщение об ошибке:

from flask import Flask, render_template from flask_wtf import FlaskForm from wtforms import StringField, SubmitField from wtforms.validators import DataRequired app = Flask(__name__) app.config['SECRET_KEY'] = 'secret' class MyForm(FlaskForm): name = StringField('Name', validators=[DataRequired('Enter name')]) submit = SubmitField('Send') @app.route('/', methods=['GET', 'POST']) def index(): form = MyForm() form.validate_on_submit() res = form.name.errors return render_template('index.html', form=form, res=res)

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

<form method="post"> {{ form.hidden_tag() }} <p>{{ form.name.label }} {{ form.name() }}</p> <p>{{ form.submit() }}</p> </form> <p>{{ res }}</p>

Результат выполнения кода при отправке пустой формы:

['Enter name']

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

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