2.用Flask-WTF处理表单

基本处理

之前提到的请求上下文中的request.form可以获得POST请求中提交表单数据,一个个去处理显然很繁琐,这时可以用Flask-WTF来让一切变得更加简单,它集成了WTForms,安装如下:
pip install flask-wtf

设置密钥

为了防止恶意网站的CSRF攻击,Flask-WTF用一个密钥生成加密令牌,再用令牌验证数据的真伪,我们把这个密钥放在app.config字典中,这里面存储了一些框架的配置变量,还支持导入配置值(一般密钥是保存在环境变量里的),代码如下:

# demo.py
...
app = Flask(__name__)
app.config['SECRET_KEY'] = 'some secret string' 
...

使用表单类

在这个拓展中每个表单都由一个继承Form的类,里面的每个字段都定义为类变量,还可以附属验证函数,如下:

from flask_wtf import Form
from wtforms import StringField, SubmitField
from wtforms.validators import Required

class NameForm(Form):
    name = StringField('你的名字:', validators=[Required()]) # validator为验证函数组成的列表
    submit = SubmitField('Go')

WTForms支持的HTML标准字段

字段类型 说 明
StringField 文本字段
TextAreaField 多行文本字段
PasswordField 密码文本字段
HiddenField 隐藏文本字段
DateField 文本字段,值为datetime.date格式
DateTimeField 文本字段,值为datetime.datetime格式
IntegerField 文本字段,值为整数
DecimalField 文本字段,值为decimal.Decimal
FloatFiled 文本字段,值为浮点数
BooleanField 复选框,值为True和False
RadioField 一组单选框
SelectField 下拉列表
SelectMultipleField 下拉列表,可选择多个值
FileField 文件上传字段
SubmitField 表单提交按钮
FormField 把表单作为字段嵌入另一表单
FieldList 一组指定类型的字段

WTForms验证函数:

<
验证函数 说 明
Email 验证电子邮件地址
EqualTo 比较两个字段的值,常用于要求输入两次密码确认的情况
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值