Flask-WTF 入门使用P1
创建表单
Flask-WTF为您的Flask应用程序集成了WTForms,具体例子如下:
from flask_wtf import FlaskForm
from wtforms import StringField
from wtforms.validators import DataRequired
class MyForm(FlaskForm):
name = StringField('name', validators=[DataRequired()])
注意
从0.9.0版本开始,Flask-WTF将不会从wtforms导入任何内容,您需要从wtforms导入字段。
此外,还会自动创建CSRF令牌隐藏字段。 您可以在您的模板中呈现:
<form method="POST" action="/">
{{ form.csrf_token }}
{{ form.name.label }} {{ form.name(size=20) }}
<input type="submit" value="Go">
</form>
如果您的表单有多个隐藏字段,您可以使用hidden_tag()在一个块中渲染它们。
<form method="POST" action="/">
{{ form.hidden_tag() }}
{{ form.name.label }} {{ form.name(size=20) }}
<input type="submit" value="Go">
</form>
验证表单
在视图处理函数中验证请求:
@app.route('/submit', methods=('GET', 'POST'))
def submit():
form = MyForm()
if form.validate_on_submit():
return redirect('/success')
return render_template('submit.html', form=form)
请注意,您不必将request.form传递给Flask-WTF; 它将自动加载。 同时使用validate_on_submit的便捷性在于,它将检查请求方式[methods]是否是一个POST请求类型以及它是否有效。
参考原文:https://flask-wtf.readthedocs.io/en/stable/quickstart.html