0
点赞
收藏
分享

微信扫一扫

Flask 入门8:Web 表单

生态人 2024-02-13 阅读 18

Flask-WTF 扩展可以把处理 Web 表单,这个扩展对独立的
WTForms 包进行了包装,方便集成到Flask应用中。

1. 配置

与其他多数扩展不同,Flask-WTF 无须在应用层初始化,但是它要求应用配置一个密钥。密钥是一个由随机字符构成的唯一字符串,通过加密或签名以不同的方式提升应用的安全性。Flask 使用这个密钥保护用户会话,以防被篡改。

配置 Flask-WTF:

app = Flask(_name_)
app.config['SECRET_KEY'] = 'hard to guess string'

2. 表单类

使用 Flask-WTF 时,在服务器端,每个 Web 表单都由一个继承自 FlaskForm 的类表示。这个类定义表单中的一个字段,每个字段都用对象表示。字段对象可附属一个或多个验证函数。
验证函数用于验证用户提交的数据是否有效。

定义表单类:

from flask_wtf import FlaskForm 
from wtforms import StringField, SubmitField 
from wtforms.validators import DataRequired 

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

验证函数 DataRequired() 确保提交的字段内容不为空。

WTForms支持的HTML标准字段:

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

WTForms验证函数:

验证函数说明
DataRequired确保转换类型后字段中有数据
Email验证电子邮件地址
EqulTo比较两个字段的值;常用于要求输入两次密码进行确认的情况
InputRequired确保转换类型前字段中有数据
IPAddress验证 IPv4 网络地址
Length验证输入字符串的长度
MacAddress验证 MAC 地址
NumberRange验证输入的值在数字范围之内
Optional允许字段中没有输入,将跳过其他验证函数
Regexp使用正则表达式验证输入值
URL验证 URL
UUID验证 UUID
AnyOf确保输入值在一组可能的值中
NoneOf确保输入值不在一组可能的值中

3. 把表单渲染成HTML

举报

相关推荐

0 条评论