Django 当中有form类,这个类给开发者提供了相当丰富的校验方式。
Flask和django同样推出了form类的插件,flask-wtf
表单定义的格式
导入的模块
import wtforms #定义字段
from flask_wtf import Form #定义表单的父类
from wtforms import validators #定义校验
表单常用的字段
StringField 字符串
IntegerField 整型
TextAreaField 文本
PasswordField 密码
HiddenField 隐藏域
DateField Datatime.data格式 年月日
DateTimeField Datatime.datatime 格式 年月日 时分秒
FloatField 小数
RadioField 单选
SelectField 下拉
FileField 文件
SubmitField 提交
表单常用的校验
Email 邮件校验
EqualTo 比较两个字段的值,常用于密码比较
IPAdress Ipv4格式的IP地址
length 长度
NumberRange 数字范围
DataRequired 空值检查
Url 验证是否符合url格式
AnyOf 确保输入值在指定范围
NoneOf 确保输入的值不在范围
表单案例
from flask_wtf import Form#定义表单单的父类
import wtforms#wtfforms #定义字段
from wtforms import validators#validators验证器validators验证器validators验证器validators
from student.models import Course
course_list=[(c.id,c.label) for c in Course.query.all()]
class TeacherForm(Form):
name=wtforms.StringField("教师姓名",
render_kw={
"class":"form-control",
"placeholder":"教师姓名"
},
validators={
validators.DataRequired("姓名不可以")
})
age=wtforms.IntegerField("教师年龄",
render_kw={#固定语法render_kw;render_kw;render_kw;render_kw
"class":"form-control",#CSS样式
"placeholder":"教师年龄",#占位符placeholder;placeholder;placeholder
},
validators=[#validators验证器,validators
validators.DataRequired("年龄不可以为空")
])#required必须的required;required;data数据data;
gender = wtforms.SelectField("教师性别",
choices=[('0','男'),('1','女'),('2','其他')],#这里必需是字符串类型1
render_kw={
"class":"form-control",
})
course=wtforms.SelectField(#选择框
"学科",
choices=course_list,
render_kw={
"class":"form-control",
}
)
"""
form 字段的参数
label=None,表单的标签
validators=None,校验,传入校验的方法
filter=tuple(),过滤
description='',描述
id=None,html id
default=None,默认值
widget=None,
render_kw=None,
"""