目录:
【Flask学习笔记:一】开发环境部署
【Flask学习笔记:二】Flask 入门基础知识
【Flask学习笔记:三】Flask 中的 request、response
【Flask学习笔记:四】Flask 应用和请求上下文
【Flask学习笔记:五】Jinja2 模板引擎
【Flask学习笔记:六】Flask 蓝图
【Flask学习笔记:七】Flask - WTF 处理表单
【Flask学习笔记:八】Flask 中的 cookie、session
【Flask学习笔记:九】Flask-SQLAlchemy
【Flask学习笔记:七】Flask - WTF 处理表单
一、Flask-WTF 安装
用 pip 安装 Flask-WTF 是十分简单的:
$ pip install Flask-WTF
或者使用 anaconda 安装:
conda install flask-wtf
二、WTForms支持的常用HTML标准字段
字段类型 | 说明 |
---|---|
StringField | 文本字段 |
IntegerField | 文本字段,值为整数 |
PasswordField | 密码文本字段 |
BooleanField | 复选框,值为 True 和 False |
FileField | 文件上传字段 |
RadioField | 一组单选按钮 |
SelectField | 下拉列表 |
DateField | 文本字段,值为 datetime.data 格式 |
DateTimeField | 文本字段,值为 datetime.datetime 格式 |
三、WTForms常用验证函数
验证函数 | 说明 |
---|---|
DataRequired | 确保该字段有数值 |
验证电子邮件地址 | |
Length | 验证输入字符串的长度 |
NumberRange | 验证输入的值在数字范围之内 |
Regexp | 使用正则表达式验证输入值 |
四、CSRF 保护
Flask-WTF 提供了对所有 Form 表单免受跨站请求伪造 ( Cross-Site Request Forgery ,CSRF) 攻击的技术支持 (通过添加动态 token 令牌的方式)。
如果要启用 CSRF 保护,可以在 config.py 中定义两个变量:
CSRF_ENABLED = True
SECRET_KEY = os.urandom(24)
其中,SECRET_KEY 用来建立加密的令牌,用于验证 Form 表单提交,尽可能设置的复杂一些,这样恶意攻击者将很难才到密钥值。
五、简单应用
编写loginForms.py文件, 定义一个关于表单的类:
from flask_wtf import Form
from wtforms import StringField, PasswordField
from wtforms.validators import DataRequired, Length
class LoginForms(Form):
username