Python全系列 教程
3567个小节阅读:5931.1k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
只有当WTForms内置的验证器不够使的时候,才需要使用自定义验证器。
如果想要对表单中的某个字段进行更细化的验证,那么可以针对这个字段进行单独的验证。
自定义验证器步骤如下:
validate_字段名(self,field)
。field.data
可以获取到这个字段的具体的值。 那么应该抛出一个wtforms.validators.ValidationError
的异常,并且把验证失败的信息传到这个异常类中。
场景:验证码实现
关键代码演示:(实现验证码 验证)
xxxxxxxxxx
from flask import session
from wtforms import Form,StringField,IntegerField
from wtforms.validators import Length,EqualTo,Email,InputRequired,NumberRange,Regexp,URL,UUID,ValidationError
class RegisterForm2(Form):
email = StringField(validators=[Email()])
uname = StringField(validators=[InputRequired()])
age = IntegerField(validators=[NumberRange(18,40)])
phone = StringField(validators=[Regexp(r'1[34578]\d{9}')])
phomepage = StringField(validators=[URL()])
uuid = StringField(validators=[UUID()])
code = StringField(validators=[Length(4,4)])
#取到的值 和服务器上 session上存储的值对比
def validate_code(self,field):
print(field.data,session.get('code'))
if field.data != session.get('code'):
raise ValidationError('验证码不一致!')
实时学习反馈
1. 在Flask中,WTForm中自定义验证器说法错误的是?
A 自定义验证器可以实现更详细复杂的验证
B 自定义验证器可以用一段逻辑来验证数据
C 自定义验证器验证的方法名规则是validate_字段名(self,field)
D 自定义验证器就是通过编写不同正则来定义验证规则
答案
1=>D