flask wtforms 常用验证器及自定义验证器

  1. flask wtforms 常用验证器:
  • Email: 验证上传的数据是否为邮箱
  • EqualTo:验证上传的数据是否和另外一个字段相等,常用的就是密码和确认密码两个字段是否相等。
  • InputRequired:原始数据的验证。如果不是特说情况,应该使用InutRequired。
  • Length: 长度限制,有min 和max两个值进行限制。
  • NumberRange:数字区间, 有min和max两个值限制, 荣国处在两个数字之间满足。
  • Regexp:自定义正则表达式。
  • URL:必须是URL形式。
  • UUID:验证UUID
  1. 常用验证器及自定义验证器演示
from wtforms import Form, StringField, IntegerField
from wtforms.validators import (Email, EqualTo, InputRequired, Length, NumberRange, Regexp, URL, UUID,ValidationError)
#  validators 后边必须是list, 添加单个,多个验证器
class LoginForm(Form):
    email = StringField(validators=[Email()])
    username = StringField(validators=[InputRequired, Length(min=3, max=15)])
    age = IntegerField(validators=[NumberRange(1,150)])
    phont = StringField(validators=[Regexp(r'1[3,5,6,7,8]\d{9}')])
    homeurl = StringField(validators=[URL()])
    uuid = StringField(validators=[UUID()])
  	captcha = StringField(validators=[Length(6, 6)]) # 验证码

    # 字定义验证器,validate_(写需要验证的字段名captcha, 添加后将同时验证长度和自定义的规则)
    def validate_captcha(self, field):
        # 模拟查询数据库,获取到数据库中保存的验证码
        captcha_data = '123456' 
        # 通过.data 获取到前端传入数据, 与数据库中保存验证码对比。 不相等 通过raise 抛出ValidationError异常
        # 在ValidationError中填写错误提示信息, 错误信息可通过 form.errors 获取到
        if field.data != captcha_data:
            raise ValidationError('验证码错误!')
@app.route('/register/', methods=['GET', 'POST'])
def resgiter():
    if request.method == 'GET':
        return render_template('register.html')
    else:
        form = RegisterWtform(request.form)
        if form.validate():
            return '注册成功'
        else:
            return '注册失败'

参考《知了课堂》flask网课整理,用于交流学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值