
Web
表单
|
35
app.config 字典可用于存储
Flask
、扩展和应用自身的配置变量。使用标准的字典句法就
能把配置添加到 app.config 对象中。这个对象还提供了一些方法,可以从文件或环境中导
入配置。第
7
章将介绍管理大型应用配置的合理方式。
Flask-WTF
之所以要求应用配置一个密钥,是为了防止表单遭到跨站请求伪造(
CSRF
,
cross-site request forgery
)攻击。恶意网站把请求发送到被攻击者已登录的其他网站时,就
会引发
CSRF
攻击。
Flask-WTF
为所有表单生成安全令牌,存储在用户会话中。令牌是一
种加密签名,根据密钥生成。
为了增强安全性,密钥不应该直接写入源码,而要保存在环境变量中。这一
技术在第
7
章介绍。
4.2
表单类
使用
Flask-WTF
时,在服务器端,每个
Web
表单都由一个继承自 FlaskForm 的类表示。这
个类定义表单中的一组字段,每个字段都用对象表示。字段对象可附属一个或多个
验证函
数
。验证函数用于验证用户提交的数据是否有效。
示例
4-2
是一个简单的
Web
表单,包含一个文本字段和一个提交按钮。
示例
4-2
hello.py
:定义表单类
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired
class NameForm(FlaskForm):
name ...