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

Поле формы StringField

Класс StringField применяется для создания текстового поля формы. Первым параметром передаётся подпись поля (label). Дополнительно можно передать валидаторы, значение по умолчанию и другие параметры. Поле преобразуется в HTML-тег input с атрибутом type="text".

Синтаксис

StringField(label, [validators], [default], [description])

Пример

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

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

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

<form method="post"> {{ form.csrf_token }} <p>{{ form.name.label }} {{ form.name }}</p> <p>{{ form.submit }}</p> </form>

При отправке формы на сервер значение поля будет доступно через атрибут data.

Пример

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

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() if form.validate_on_submit(): return form.name.data return render_template('index.html', form=form)

Если поле оставить пустым, форма не пройдёт валидацию, а в атрибуте errors появится сообщение об ошибке.

Пример

Давайте зададим значение по умолчанию через параметр default:

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

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

"abcde"

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

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