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

Поле формы SearchField

Класс SearchField применяется для создания поля поиска в формах Flask-WTF. Первым параметром передаётся подпись поля (метка), которая отображается рядом с полем ввода. Поле генерирует HTML-тег input с атрибутом type="search", предназначенный для ввода поисковых запросов.

Класс наследуется от StringField и принимает все его параметры: валидаторы, описание, фильтры, значения по умолчанию.

Синтаксис

from wtforms import SearchField field = SearchField(label, [validators], **kwargs)

Пример

Давайте создадим простую форму поиска с одним полем:

from flask import Flask, render_template from flask_wtf import FlaskForm from wtforms import SearchField, SubmitField app = Flask(__name__) app.config['SECRET_KEY'] = 'secret' class SearchForm(FlaskForm): query = SearchField('Search') submit = SubmitField('Go') @app.route('/', methods=['GET', 'POST']) def index(): form = SearchForm() res = None if form.validate_on_submit(): res = form.query.data return render_template('index.html', form=form, res=res)

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

<form method="post"> {{ form.hidden_tag() }} <p>{{ form.query.label }} {{ form.query() }}</p> <p>{{ form.submit() }}</p> </form> {% if res %} <p>You searched for: {{ res }}</p> {% endif %}

После ввода строки 'abcde' и отправки формы результат будет:

<p>You searched for: abcde</p>

Пример

Давайте добавим валидатор DataRequired, чтобы поле не могло быть пустым:

from flask import Flask, render_template from flask_wtf import FlaskForm from wtforms import SearchField, SubmitField from wtforms.validators import DataRequired app = Flask(__name__) app.config['SECRET_KEY'] = 'secret' class SearchForm(FlaskForm): query = SearchField('Search', validators=[DataRequired()]) submit = SubmitField('Go') @app.route('/', methods=['GET', 'POST']) def index(): form = SearchForm() res = None if form.validate_on_submit(): res = form.query.data return render_template('index.html', form=form, res=res)

Если отправить пустую форму, в шаблоне можно вывести ошибку:

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

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

<p>This field is required.</p>

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

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