Метод process
Метод process применяется к экземпляру
класса FlaskForm и обрабатывает входящие
данные формы. Первым параметром передаётся
объект запроса request из Flask, вторым -
словарь дополнительных данных. Метод заполняет
поля формы значениями и запускает валидаторы,
сохраняя результат в атрибуте errors.
Синтаксис
form.process(formdata, [data])
Пример
Давайте создадим форму и обработаем данные из запроса:
from flask import Flask, request
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
app = Flask(__name__)
app.config['SECRET_KEY'] = 'abcde'
class MyForm(FlaskForm):
name = StringField('Name')
submit = SubmitField('Send')
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm()
form.process(request)
return str(form.data)
Результат выполнения кода для POST-запроса с полем name=abcde:
{'name': 'abcde', 'submit': False, 'csrf_token': '...'}
Пример
Давайте передадим дополнительные данные вторым параметром:
from flask import Flask, request
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
app = Flask(__name__)
app.config['SECRET_KEY'] = 'abcde'
class MyForm(FlaskForm):
name = StringField('Name')
submit = SubmitField('Send')
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm()
form.process(request, data={'name': 'hello'})
return str(form.data)
Результат выполнения кода:
{'name': 'hello', 'submit': False, 'csrf_token': '...'}
Пример
Давайте проверим ошибки валидации после обработки формы:
from flask import Flask, request
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired
app = Flask(__name__)
app.config['SECRET_KEY'] = 'abcde'
class MyForm(FlaskForm):
name = StringField('Name', validators=[DataRequired()])
submit = SubmitField('Send')
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm()
form.process(request)
return str(form.errors)
Результат выполнения кода для POST-запроса с пустым полем name:
{'name': ['This field is required.']}
Смотрите также
-
класс
FlaskForm,
который представляет форму во Flask -
метод
validate_on_submit,
который проверяет отправку и валидность формы -
метод
validate,
который запускает валидаторы формы -
атрибут
errors,
который хранит ошибки валидации