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

Поле формы IntegerField

Класс IntegerField применяется для создания поля формы, которое принимает целые числа. При отправке формы значение автоматически преобразуется в целое число. Если введённое значение не является целым числом, валидация завершится ошибкой. Первым параметром передаётся подпись поля, которая отображается рядом с полем ввода. Дополнительно можно передать различные валидаторы, например NumberRange или InputRequired.

Синтаксис

from wtforms import IntegerField field = IntegerField(label, [validators], [default])

Пример

Давайте создадим простую форму с полем для ввода целого числа:

from flask import Flask, render_template, request from wtforms import Form, IntegerField, SubmitField app = Flask(__name__) app.config['SECRET_KEY'] = 'abcde' class MyForm(Form): number = IntegerField('Number') submit = SubmitField('Send') @app.route('/', methods=['GET', 'POST']) def index(): form = MyForm(request.form) if request.method == 'POST': res = form.number.data return str(res) return render_template('index.html', form=form)

Шаблон для отображения формы:

<form method="post"> {{ form.number.label }} {{ form.number() }} {{ form.submit() }} </form>

Если ввести в поле значение 123 и отправить форму, результат выполнения кода будет:

"123"

Пример

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

from flask import Flask, render_template, request from wtforms import Form, IntegerField, SubmitField from wtforms.validators import NumberRange app = Flask(__name__) app.config['SECRET_KEY'] = 'abcde' class MyForm(Form): number = IntegerField('Number', [NumberRange(min=1, max=100)]) submit = SubmitField('Send') @app.route('/', methods=['GET', 'POST']) def index(): form = MyForm(request.form) if request.method == 'POST' and form.validate(): res = form.number.data return str(res) return render_template('index.html', form=form)

Если ввести в поле значение 50, результат выполнения кода будет:

"50"

Если ввести значение 500, валидация не пройдёт, и форма вернётся с сообщением об ошибке.

Пример

Давайте используем значение по умолчанию для поля:

from flask import Flask, render_template, request from wtforms import Form, IntegerField, SubmitField app = Flask(__name__) app.config['SECRET_KEY'] = 'abcde' class MyForm(Form): number = IntegerField('Number', default=10) submit = SubmitField('Send') @app.route('/', methods=['GET', 'POST']) def index(): form = MyForm(request.form) if request.method == 'POST': res = form.number.data return str(res) return render_template('index.html', form=form)

При открытии формы поле будет содержать значение 10. Если отправить форму без изменений, результат выполнения кода будет:

"10"

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

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