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

Атрибут raw_data

Атрибут raw_data принадлежит классу Field из библиотеки WTForms, которая используется во Flask для работы с формами. Этот атрибут хранит исходное значение, пришедшее из формы, в том виде, в котором оно было получено до вызова метода process_formdata и последующей валидации. Иными словами, raw_data содержит «сырые» данные, которые ещё не были преобразованы к типу поля и не прошли проверку. Атрибут особенно полезен, когда нужно получить значение напрямую из запроса, например для отладки или при написании собственной логики обработки. По умолчанию raw_data равен None, пока форма не будет отправлена и поля не получат данные.

Синтаксис

field.raw_data

Пример

Давайте создадим простую форму с одним полем и посмотрим, что содержит атрибут raw_data после отправки данных:

from flask import Flask, request, render_template 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 request.method == 'POST': return str(form.name.raw_data) return render_template('index.html', form=form)

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

<form method="post"> {{ form.name.label }} {{ form.name() }} <input type="submit"> </form>

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

['abcde']

Как видим, raw_data представляет собой список, даже если поле одно. Это связано с тем, что из формы значение приходит в виде списка строк.

Пример

Давайте сравним raw_data и data после обработки поля:

from flask import Flask, request, render_template 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 request.method == 'POST': res = { 'raw': form.name.raw_data, 'data': form.name.data } return str(res) return render_template('index.html', form=form)

Шаблон остаётся прежним. При отправке значения 'hello' получим:

{'raw': ['hello'], 'data': 'hello'}

Атрибут raw_data хранит список строк, а data - уже преобразованное значение поля.

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

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