• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

Yancy00

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

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) 自己定义正则表达式规则验证

验证器名称都小写.

posted on 2023-03-20 21:15  Yancy00  阅读(76)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3