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

Метод validate

Метод validate применяется к экземпляру формы FlaskForm и запускает проверку всех полей. Если хотя бы одно поле не проходит валидацию, метод возвращает False, а объект формы наполняется ошибками в атрибуте errors. Если все поля корректны, метод возвращает True.

Синтаксис

form.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() return str(res)

При GET-запросе на адрес / форма не содержит данных, поэтому валидация не пройдёт. Результат выполнения кода:

False

Пример

Давайте отправим корректные данные через POST-запрос и проверим результат валидации:

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

Если отправить POST-запрос с параметром name=abcde, валидация пройдёт успешно. Результат выполнения кода:

True

Пример

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

from flask import Flask, render_template from flask_wtf import FlaskForm from wtforms import StringField from wtforms.validators import DataRequired app = Flask(__name__) app.config['SECRET_KEY'] = 'abcde' class MyForm(FlaskForm): name = StringField('Name', validators=[DataRequired()]) @app.route('/', methods=['GET', 'POST']) def index(): form = MyForm() if not form.validate(): return str(form.errors) return 'hello'

Если отправить POST-запрос с пустым полем name, метод вернёт словарь с ошибками. Результат выполнения кода:

{'name': ['This field is required.']}

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

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