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

Правило AnyOf

Правило AnyOf применяется к полю формы и проверяет, что отправленное пользователем значение содержится в заданном списке допустимых значений. Первым параметром передаётся список разрешённых значений. Вторым необязательным параметром передаётся сообщение об ошибке, которое будет показано при неудачной валидации.

Синтаксис

AnyOf(values, [message])

Пример

Давайте создадим форму с полем choice, которое принимает только значения из списка:

from flask import Flask, render_template, request from wtforms import Form, StringField from wtforms.validators import AnyOf app = Flask(__name__) class MyForm(Form): choice = StringField('choice', [AnyOf(['abcde', 'article', 'hello'])]) @app.route('/', methods=['GET', 'POST']) def index(): form = MyForm(request.form) if request.method == 'POST' and form.validate(): return 'valid' return render_template('index.html', form=form)

Давайте создадим шаблон для вывода формы:

<form method="post"> {{ form.choice.label }} {{ form.choice() }} <input type="submit"> </form>

При отправке значения 'abcde' форма успешно пройдёт валидацию. Результат выполнения кода:

valid

Пример

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

from flask import Flask, render_template, request from wtforms import Form, StringField from wtforms.validators import AnyOf app = Flask(__name__) class MyForm(Form): choice = StringField('choice', [AnyOf(['abcde', 'article'], message='invalid value')]) @app.route('/', methods=['GET', 'POST']) def index(): form = MyForm(request.form) if request.method == 'POST' and form.validate(): return 'valid' return render_template('index.html', form=form)

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

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

При отправке значения 'hello' форма не пройдёт валидацию, и будет выведено сообщение об ошибке:

invalid value

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

  • правило NoneOf,
    которое проверяет, что значение не входит в список
  • правило Regexp,
    которое проверяет значение по регулярному выражению
  • правило Length,
    которое проверяет длину строки
  • правило DataRequired,
    которое проверяет, что поле не пустое
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить