Web表单(Flask-WTF)

   在登录网站或者注册时我们总会遇到表单,在Flask中我们可以用Flask-WTF来把处理表单问题。Flask-WTF能保证所有的表单免受跨站请求伪造(CSRF)的攻击。恶意网站把请求发送到被攻击者已登录的其他网站时就会引发CSRF攻击(利用的是网站对浏览器用户的信任。)为了保护CSRF保护,Flask-WTF需要程序设置一个密钥,Flask-WTF使用这个密钥生成加密令牌,再用令牌验证请求中表单数据的真伪。在Flask中app.config字典可以用来存储框架,扩展和程序本身的配置变量,使用标准的字典句法就可以把配置添加到app.config对象中。这个对象还提供了一些方法,可以从文件或环境中导入配置值。

    SECRET_KEY配置变量是通用密钥,可在Flask和多个第三方扩展中使用。不同的程序需要使用不同的密钥,而且要保证其他人不知道你所用的字符串。同时,为了增强安全性,密钥不应该主接写入代码应该保存在环境变量中。

    使用Flask_wtf 极其简单

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比较两个字段的值,常用于要求输入两次密码确认的情况
IPAddress验证IPv4网络地址
Length验证输入字符串的长度
NumberRange验证输入的值在数字范围内
Optional无输入值时跳过其他验证函数
Required确保字段中有数据
Regexp使用正则表达式验证输入值
URL验证URL
AngOf确保输入值在可选值列表中
NoneOf确保输入值之不在可选值列表中
写一个最简单的Web表单,包含一个文本字段和一个提交按钮。
from flask_wtf import Form
from wtforms import StringField,SubmitField
from wtforms.validators import Required

class NameForm(Form):
    name = StringField('What is your name?',validators= [Required()])
    submit = SubmitField('Submit') 

把表单渲染成HTML

利用Bootstrap中预定义好的表单样式渲染整个Flask_WTF表单,是极其方便的,只要将Bootstrap中预定义好的wtf.html导入。然后将将表单传递给quick_from()函数

{% import 'bootstrap/wtf.html" as wtf %}
{{wtf.quick_from(form)}}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值