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

Поле формы FloatField

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

Первым параметром передаётся подпись поля, которая отображается рядом с полем ввода. Дополнительные параметры, такие как validators, default и другие, передаются как именованные аргументы.

Синтаксис

FloatField(label, [validators], [default])

Пример

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

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

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

<form method="post"> {{ form.hidden_tag() }} <p>{{ form.price.label }} {{ form.price() }}</p> <p>{{ form.submit() }}</p> </form>

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

3.14

Пример

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

from flask import Flask, render_template from flask_wtf import FlaskForm from wtforms import FloatField, SubmitField from wtforms.validators import DataRequired app = Flask(__name__) app.config['SECRET_KEY'] = 'abcde' class MyForm(FlaskForm): price = FloatField('Price', validators=[DataRequired()]) submit = SubmitField('Send') @app.route('/', methods=['GET', 'POST']) def index(): form = MyForm() if form.validate_on_submit(): return str(form.price.data) return render_template('index.html', form=form)

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

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

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

Пример

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

from flask import Flask, render_template from flask_wtf import FlaskForm from wtforms import FloatField, SubmitField app = Flask(__name__) app.config['SECRET_KEY'] = 'abcde' class MyForm(FlaskForm): price = FloatField('Price', default=1.5) submit = SubmitField('Send') @app.route('/', methods=['GET', 'POST']) def index(): form = MyForm() return render_template('index.html', form=form)

При открытии формы поле будет уже заполнено значением 1.5.

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

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