python表单验证wtf_Python full stack 030---WTF渲染模板,常用的验证器,python,全栈,030WTF,模版...

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文件

Title
邮箱:

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、付费专栏及课程。

余额充值