python全栈030-----WTF渲染模版,常用验证器

WTF常用验证器

这其实就是一个验证器

  • 我们可以ctrl+左键查看一下

这些都是他的验证器

  • 我们来用一下email这个验证器

  • 首先我们先安装这个验证器pip install email_validator

  • 初始代码
from flask import Flask,request,render_template
from forms import RegistForm,LoginForm
app = Flask(__name__)

@app.route('/')
def index():
    return '首页'

@app.route('/login/',methods = ['GET','POST'])
def login():
    if request.method == 'GET':
        return render_template('login.html')
    else:
        form = LoginForm(request.form)
        if form.validate():
            return '注册成功'
        else:
            print(form.errors)
            return '注册失败'

if __name__ =='__main__':
    app.run(debug=True,port=8888)
  • login.html文件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="" method="post">
    <table>
        <tr>
            <td>邮箱:</td>
            <td><input type="text" name="email"></td>
        </tr>
        <tr>
            <td><input type="submit" value="提交"></td>
        </tr>
    </table>
</form>
</body>
</html>
  • forms.py文件这里面装有我们的验证器,使用email验证器
from wtforms import Form,StringField
from wtforms.validators import Length,EqualTo,Email

# 表单验证
class LoginForm(Form):
    email = StringField(validators=[Email()])
  • 运行视图函数,打开网址

  • 我们输入asd@qq.com点击提交返回注册成功:
  • 我们输入asd点击提交:显示注册失败
  • 并且pc(pycharm)中会给我们返回这个:
  • 如果我们在email验证器后面加上参数message呢

  • 我们依旧输入asd
  • pc(pycharm)中会返回这个

NumberRange验证器:验证长度

from wtforms.validators import NmuberRange
  • 我们设置一个关于年龄的验证器

  • 我们查看NumberRange的源码

可以发现有一个min max就是最小值和最大值

  • 再修改一下html文件的代码

  • 访问网址

  • 我们输入81:提示注册失败:
  • 我们输入80:提示注册成功:

InputRequired:验证是否输入

from wtforms.validators import InputRequired

  • 我们在打开网址:

  • 我们不输入任何东西点击提交:
  • 我们随便输入点击提交:

Regexp:

from wtforms.validators import Regexp

  • 打开网址:

  • 我们随意写一个:
  • 我们按照格式写一个:

URL:验证是否为url

from wtforms.validators import URL

  • 打开网址
  • 随便输入一个:
  • 输入一个网址

验证码:

我们只是模拟一下,通常我们见到的验证码有4位的6位的,我们模拟一下4位的

  • 但是我们现在仅仅只是验证了一下验证码的长度
  • 如果我们的验证码 为5678呢,就是输出其他的都不行,就5678好使
  • 怎么做呢,我们需要定义一个方法来对captcha进行验证
class LoginForm(Form):
    # email = StringField(validators=[Email(message='格式不正确')])
    # NumberRange
    # age = IntegerField(validators=[NumberRange(1,80)])
    # InputRequired
    # username = StringField(validators=[InputRequired()])
    # Regexp
    # telphon = StringField(validators=[Regexp(r'1[3589]\d{9}')])
    # URL
    # info = StringField(validators=[URL()])
    # 验证码
    captcha = StringField(validators=[Length(min=4,max=4)])   #验证长度只有四位数可以
    # 5678 除了5678都不行 用if是不行的
    def validate_captcha(self,field):   # 必须定义一个方法才能够去验证,validate_后面加上你要验证的
        if field.data != '5678':
            raise
  • 如果field.data不等于5678我们就要他返回一个错误 ValidationError

  • 我们进入网址

  • 我们输入5678:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值