flask-表单验证
服务器端的表单验证用WTForms来实现
from wtforms import Form,StringField
from wtforms.validators import length,email,equal_to
class RegisterForm(Form):
username=StringField(validators=[length(min=3,max=20,message='用户名不得少于3个字符.不得大于20个字符.')])
emial=StringField(validators=[email(message='请输入正确的邮箱')])
password=StringField(validators=[length(min=6,max=20,message='密码不得少于6位,不得大于20位')])
confirm_pwd=StringField(validators=[equal_to(password,message='密码不一致')])
def validate_email(self, field): #自定义验证指定字段
email=field.data
#从数据库中查出每个已注册用户的邮箱.并去重之后.保存在exist_emails列表中
if email in exist_emails:
raise ValidationError("邮箱已被注册")
return True
字段类型
| 字段类型 | 描述 |
|---|---|
| StringField | 字符串类型 |
| IntegerField | 整数类型 |
| FloadField | 浮点类型 |
| DecimalField | 定点类型 |
| BooleanField | 布尔类型 |
| DateTimeField | 日期时间类型 |
| DateField | 日期类型 |
| TimeField | 时间类型 |
| FileField | 文件类型 |
WTForms提供了常见的表单字段验证器
| 验证器 | 描述 |
|---|---|
| length(min,max,message) | 验证字段长度是否在区间内.message保存错误信息 |
| email() | 验证内容是否满足邮箱格式 |
| equal_to(filedname,message) | 验证当前字段是否和另外一个字段值相等 |
| ip_address(message) | 验证是否满足ip地址的规则 |
| mac_address(message) | 验证是否满足mac地址的规则 |
| number_range(min,max,message) | 验证数字是否在指定的范围内 |
| optional(strip_whitespace) | 设置数据可以为空,并停止其他验证器的校验 |
| input_required(message) | 验证是否为空 |
| data_required(message) | 验证是否有效 |
| url(message) | 验证是否满足url规则 |
| any_of(values,message,values_formatter) | 验证是否是values中的一个 |
| none_of(values,message,values_formatter) | 验证是否不是values中的一个 |
| regexp(regex,flags,message) | 自己定义正则表达式规则验证 |
验证器名称都小写.
浙公网安备 33010602011771号