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

Атрибут data

Атрибут data принадлежит классу Field из модуля wtforms и доступен у каждого поля формы. Он содержит значение, которое было передано в форму и успешно прошло валидацию и приведение типа. В отличие от raw_data, где хранятся сырые строки из запроса, data хранит уже обработанное значение: целое число для IntegerField, список для SelectMultipleField и так далее. Если валидация не прошла, в data окажется значение по умолчанию или None.

Синтаксис

field.data

Пример

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

from flask import Flask, request from wtforms import Form, StringField app = Flask(__name__) class MyForm(Form): name = StringField('Name') @app.route('/', methods=['GET', 'POST']) def index(): form = MyForm(request.form) if form.validate(): return form.name.data return 'invalid'

Результат выполнения кода для поля name=abcde:

abcde

Пример

Давайте посмотрим, как data приводит строку к числу в IntegerField:

from flask import Flask, request from wtforms import Form, IntegerField app = Flask(__name__) class MyForm(Form): age = IntegerField('Age') @app.route('/', methods=['GET', 'POST']) def index(): form = MyForm(request.form) if form.validate(): return str(form.age.data + 1) return 'invalid'

Результат выполнения кода для поля age=41:

42

Как видно из примера, в data лежит уже целое число 41, а не строка '41', поэтому с ним можно работать как с числом.

Пример

Давайте выведем data всех полей формы в шаблоне через Jinja:

from flask import Flask, request, render_template from wtforms import Form, StringField, IntegerField app = Flask(__name__) class MyForm(Form): name = StringField('Name') age = IntegerField('Age') @app.route('/', methods=['GET', 'POST']) def index(): form = MyForm(request.form) if form.validate(): return render_template('index.html', form=form) return 'invalid'

Файл шаблона:

<p>{{ form.name.data }}</p> <p>{{ form.age.data }}</p>

Результат выполнения кода для полей name=abcde и age=25:

<p>abcde</p> <p>25</p>

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

  • класс Field,
    которому принадлежит данный атрибут
  • атрибут raw_data,
    который хранит сырые данные из формы
  • метод process_formdata,
    который заполняет атрибут data из данных формы
  • метод validate,
    который проверяет значение поля перед использованием data
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить