WTForms 验证表单

#

from wtforms.validators import Length, EqualTo
from wtforms import Form, StringField


#验证表单
class RegisterForm(Form):
    class RegistForm(Form):
        username = StringField(validators=[Length(min=3, max=10, message='用户名长度必须在3到10位之间')])
        password = StringField(validators=[Length(min=6, max=10)])
        password_repeat = StringField(validators=[Length(min=6, max=10), EqualTo("password")])

#

@app.route('/login/',methods=['GET','POST'])
def login():
    if request.method == 'GET':
        return render_template("login.html")
    else:
        form =RegisterForm(request.form)
        if form.validate():
            return "success"
        else:
            print(form.errors)
            return "fail"

#

### 做表单验证:
1. 自定义一个表单类,继承自wtforms.Form类。
2. 定义好需要验证的字段,字段的名字必须和模版中那些需要验证的input标签的name属性值保持一致。
3. 在需要验证的字段上,需要指定好具体的数据类型。
4. 在相关的字段上,指定验证器。
5. 以后在视图中,就只需要使用这个表单类的对象,并且把需要验证的数据,也就是request.form传给这个表单类,以后调用form.validate()方法,
如果返回True,那么代表用户输入的数据都是合法的,否则代表用户输入的数据是有问题的.如果验证失败了,
那么可以通过form.errors来获取具体的错误信息。

#常用的验证器

1. Email:验证上传的数据是否为邮箱。
2. EqualTo:验证上传的数据是否和另外一个字段相等,常用的就是密码和确认密码两个字段是否相等。
3. InputRequir:原始数据的需要验证。如果不是特殊情况,应该使用InputRequired。
3. Length:长度限制,有min和max两个值进行限制。
4. NumberRange:数字的区间,有min和max两个值限制,如果处在这两个数字之间则满足。
5. Regexp:自定义正则表达式。
6. URL:必须要是URL的形式。
7. UUID:验证UUID。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值