flask-wtf是什么?它有什么特点?

2024年04月18日 Python51

Flask-wtf是一个用于表单处理、校验并提供csrf验证的功能的扩展库。

扩展Flask-WTF继承了WTFforms,使用它可以在flask中更方便的使用WTForms。Flask-WTF将表单数据解析、CSRF保护、文件上传等功能与Flask集成。

flask-wtf默认为每个表单启用CSRF保护,它为我们自动生成和验证CSRF令牌。默认情况下,fflask-wtf使用程序秘钥来对CSRF令牌进行签名(token),所以我们需要为程序设置秘钥:

app.secret_key = ‘secret string’

定义WTForms表单来

使用WTForms创建表单时,表单由python类表示,这个类继承从STForms导入的Form类。一个表单由若干个输入字段组成,这些字段分别用表单类的类属性来表示(字段即field,可以简单理解为表单内的输入框、按钮等部件),下面定义了一个LoginForm类,最终会生成像之前定义的HTML表单:

flask-wtf必要性

避免重复操作, 表单操作很多,防止表单遭遇跨站请求伪造(csrf===cross-site request forgery)。

为什么使用Flask-WTF?

request对象公开了所有客户端发送的请求信息。特别是request.form可以访问POST请求提交的表单数据。

尽管Flask的request对象提供的支持足以处理web表单,但依然有许多任务会变得单调且重复。

表单的HTML代码生成和验证提交的表单数据就是两个很好的例子。

优势:

Flask-WTF扩展使得处理web表单能获得更愉快的体验。该扩展是一个封装了与框架无关的WTForms包的Flask集成。

flask-wtf的使用流程

编写forms.py文件, 定义一个关于表单的类;(***注意: 一定要有提交的按钮);

业务逻辑文件app.py中,

实例化表单类; form = RegisterForm(),

验证表单内容是否提交成功? form.validate_on_submit(),

获取表单里面的内容(两种方法),

通过request对象获取: request.form['key值'],

通过form对象获取: form.key值.data,

表现逻辑文件wtf.html中,

导入wtf模块: {% import "bootstrap/wtf.html" as wtf %},

自动生成表单对应的html: {{ wtf.quick_form(form) }}。

本文链接:http://so.lmcjl.com/news/2467/

展开阅读全文