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

Метод validate

Метод validate применяется к экземпляру класса Form и запускает проверку всех валидаторов, привязанных к полям формы. Метод не принимает обязательных параметров и возвращает True, если все поля прошли проверку, иначе False. Результаты проверки сохраняются в атрибуте errors, а очищенные данные - в атрибуте data.

Синтаксис

form.validate()

Пример

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

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

Шаблон для вывода формы:

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

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

<form method="post"> <p>Name <input id="name" name="name" type="text" value=""></p> <p><input id="submit" name="submit" type="submit" value="Send"></p> </form>

Пример

Давайте проверим форму с валидатором Length и выведем список ошибок через атрибут errors:

from flask import Flask, render_template, request from flask_wtf import FlaskForm from wtforms import StringField, SubmitField from wtforms.validators import DataRequired, Length app = Flask(__name__) app.config['SECRET_KEY'] = 'abcde' class MyForm(FlaskForm): name = StringField('Name', validators=[ DataRequired(), Length(min=3, max=10) ]) submit = SubmitField('Send') @app.route('/', methods=['GET', 'POST']) def index(): form = MyForm() if form.validate(): return 'form is valid' return render_template('index.html', form=form)

Шаблон для вывода ошибок:

<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>

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

<form method="post"> <p>Name <input id="name" name="name" type="text" value="ab"></p> <p>Field must be between 3 and 10 characters long.</p> <p><input id="submit" name="submit" type="submit" value="Send"></p> </form>

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

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