Метод process
Метод process применяется к экземпляру класса
Form и обрабатывает входящие данные. Первым
параметром передаётся объект formdata из запроса,
а вторым - obj с исходными данными для полей.
После вызова метода поля формы заполняются, и запускается
валидация, если передан ключевой параметр extra_validators.
Синтаксис
form.process(formdata, obj, data, **kwargs)
Пример
Давайте создадим форму и обработаем данные из запроса:
from flask import Flask, request
from flask_wtf import FlaskForm
from wtforms import StringField
app = Flask(__name__)
app.config['SECRET_KEY'] = 'abcde'
class UserForm(FlaskForm):
name = StringField('Name')
@app.route('/', methods=['POST'])
def index():
form = UserForm()
form.process(formdata=request.form)
return form.name.data
Результат выполнения кода для POST-запроса с полем name=abcde:
"abcde"
Пример
Давайте передадим исходные данные через параметр obj:
from flask import Flask
from flask_wtf import FlaskForm
from wtforms import StringField
app = Flask(__name__)
app.config['SECRET_KEY'] = 'abcde'
class UserForm(FlaskForm):
name = StringField('Name')
class User:
name = 'hello'
@app.route('/')
def index():
form = UserForm()
form.process(obj=User())
return form.name.data
Результат выполнения кода:
"hello"
Пример
Давайте проверим валидацию после обработки данных:
from flask import Flask, request
from flask_wtf import FlaskForm
from wtforms import StringField
from wtforms.validators import DataRequired
app = Flask(__name__)
app.config['SECRET_KEY'] = 'abcde'
class UserForm(FlaskForm):
name = StringField('Name', validators=[DataRequired()])
@app.route('/', methods=['POST'])
def index():
form = UserForm()
form.process(formdata=request.form)
res = form.validate()
return str(res)
Результат выполнения кода для POST-запроса с полем name=abcde:
True
Смотрите также
-
метод
validate_on_submit,
который проверяет отправку и валидирует форму -
метод
validate,
который запускает валидацию полей формы -
метод
populate_obj,
который переносит данные формы в объект -
метод
hidden_tag,
который выводит скрытые поля формы