08.21 在Flask Web中处理web表单

在Flask Web中处理web表单

在Flask web程序中,请求对象是包含客户端发出的所有请求信息的,其中request.form能获取post请求提交的表单数据。虽然,这个请求提供的信息足够处理,但是对于有些简单的并且重复操作的任务,例如生成表单的html代码和验证提交表单数据,我们有更好的处理方法,那就是使用Flask-WTF扩展。这个扩展可以使用pip安装。

默认下,使用Flask-WTF能使表单免受跨站请求伪造(CSRF)的攻击,信息安全更有保证。CSRF保护的实现方式是:Flask-WTF要程序设置一个密钥,然后它会使用这个密钥生成加密令牌,再用令牌验证请求表单数据的真伪。ps:通常为了增加安全性,密钥不应该直接写入代码中,而要保存在环境变量中。

在Flask Web中处理web表单

关于表单类:使用Flask-WTF时,每一个表单都由一个继承自Form的类表示,可以用这个类定义表单中的字段(注意,这些字段都是对象表示的),字段对象还可以附加一个或多个验证函数,用于验证用户提交是否合法,例如用Required()确保提交的字段不为空。

在Flask Web中处理web表单

表单的字段都定义为类变量,是可以调用的,在模板中调用后会渲染成html,还可以把参数传入渲染字段的函数实现将参数转为字段html的属性,不过由于这种指定html属性的表单渲染方式实在工作量太大,因此建议使用之前说到的

Bootstrap框架中的表单样式。

最近忙成狗,先到此为止,关于视图函数中如何处理表单,将在下篇谈到。

待续未完~~~


分享到:


相關文章: