一、安装 flask_WTF 0.14.X
flask_WTF 英文文档 flask_WTF 中文文档0.12 Flask表单验证组件WTForms
Flask-WTF是集成WTForms,并带有 csrf 令牌的安全表单和全局的 csrf 保护的功能。每次我们在建立表单所创建的类都是继承与flask_wtf中的FlaskForm,而FlaskForm是继承WTForms中forms。
pip install flask_WTF
二、基本用法:
1.创建基础表单
例如,form.py:
class LoginForm(FlaskForm):
username = StringField()
password = PasswordField()
remember_me = BooleanField(label='Keep me logged in')
2.CSRF保护
任何使用FlaskForm创建的表单发送请求,都会有CSRF的全部保护,在对应的template中HTML渲染表单时,可以加入form.csrf_token:
app.config['SECRET_KEY'] = 'ABC' # 指定CSRF验证字段
<form method="post">
{
{ form.csrf_token }}
</form>
但是如果模板中没有表单,则可以使用一个隐藏的input标签加入csrf_token。
<form method="post">
<input type="hidden" name="csrf_token" value="{
{ csrf_token() }}"/>
</form>
3.验证表单
在视图处理程序中验证请求:
view.py
def login():
form = LoginForm()
if form.validate_on_submit():
return redirect('/success')
return render_template('login.html', form=form)
使用 validate_on_submit
来检查是否是一个 POST 请求并且请求是否有效。
4.文件上传
Flask-WTF 提供 FileField 来