1 wtforms内置的校验器

Class wtforms.validators.DataRequired(message=None)
此验证器将会检测field是否输入了数值,实际上是进行了if field.data操作。并且,如数数据是一个字符串,那么只包含空格的字符串将会被认为是False。
参数:message-当验证失败时返回的错误消息数:message-当验证失败时返回的错误消息

class wtforms.validators.Email(message=None)
此验证器验证Email的地址,注意只会验证Email的格式,最好在使用的时候你能够自己校验他的真实性,比如激活或者查找
参数:message-当验证失败时返回的错误消息验证失败时返回的错误消息

class wtforms.validators.EqualTo(fieldname, message=None)
用于比较两个Field的数据是否相等。
参数: filedname-你要比较的另一个Field的名称
message-当验证失败时返回的错误消息,可以用%(other_label)s和 %(other_name)s来更提供更多的错误消息
此验证器可用于验证一个或者多个相同field的情景,更改密码的代码

class wtforms.validators.InputRequired(message=None)
用于验证field有数据输入,注意与DataRequired的区别,InputRequired主要看是否输入了数据,而DataRequired用于那些强制Post的数据

class wtforms.validators.IPAddress(ipv4=True, ipv6=False, message=None)
ipv4-当为Ture时,允许有效的IPv4地址(默认为True)
ipv6-当为Ture时,允许有效的IPv6地址(默认为False)
参数:message-当验证失败时返回的错误消息

class wtforms.validators.Length(min=-1, max=-1,message=None)
验证字符串的长度
min-输入的最小的字符串长度,如果未指定,则不校验最小字符串
max-输入的最大的字符串长度,如果未指定,则不校验最大字符串
message-当验证失败时返回的错误消息,如果需要,可以通过%(min)d,%(max)d来自行设置

class wtforms.validators.NumberRange(min=None, max=None,message=None)
用于验证数据是否在最小值与最大值之间,支持的常用的数据类型,如float等,不只是int
min-输入的最小的字符串长度,如果未指定,则不校验最小字符串
max-输入的最大的字符串长度,如果未指定,则不校验最大字符串
message-当验证失败时返回的错误消息,如果需要,可以通过%(min)d,%(max)d来自行设置

class wtforms.validators.Regexp(regex, flags=0, message=None)
通过正则表达式验证
regex-正则表达式,也可以通过参数传递
flags-regex使用标示,如re.IGNORECASE,如果regex不是一个字符串将忽略
message-当验证失败时返回的错误消息

class wtforms.validators.URL(require_tld=True, message=None)
通过正则表达式对URL进行简单的验证,与Email验证器相似,可能在之后需要其他的方式验证其真实性
require_tld-当设置为True时,必须在域名中包含顶级域名等,当需要验证localhost时设置为False

2 自定义验证器 - namefield验证器

在类里面,编写 def validate_namefieldxxx(form, field)函数,通过raise ValidationError提示错误信息,编写在类里面的验证器,不需要在显示在feild里面指定validators=, 比如

class LoginForm(Form):

openid = StringField('openid', validators=[DataRequired()])

remember_me = BooleanField('remember_me', default=False)

def validate_remember_me(form, field):

if field.data != False:

raise ValidationError('remember_me must be False')

自定义验证器 - 把验证器编写成单独的函数

这样需要在feild里面指定validators=,比如

def validate_remember_me(form, field):

if field.data != False:

raise ValidationError('remember_me must be False2')

class LoginForm(Form):

openid = StringField('openid', validators=[DataRequired()])

remember_me = BooleanField('remember_me', default=False,

validators=[validate_remember_me ])

自定义验证器 - 把验证器编写成单独的类

class Length(object):

def __init__(self, min=-1, max=-1, message=None):

self.min = min

self.max = max

if not message:

message = u'Field must be between %i and %icharacters long.' % (min, max)

self.message = message

def __call__(self, form, field):

l = field.data and len(field.data) or 0

if l < self.min or self.max != -1 and l > self.max:

raise ValidationError(self.message)

length = Length

class MyForm(Form):

name = StringField('Name', [InputRequired(), length(max=50)])

表单 Flask-WTF - 校验器的更多相关文章

  1. JavaWeb -- Struts2,对比, 简单表单提交,校验,防重复提交, 文件上传

    Struts2核心流程图 1. Struts2 和 Struts1 对比 struts1:基于Servlet(ActionServlet),actionForm众多(类的爆炸),action单例(数据 ...

  2. iview form表单数值类型校验「iview自定义form表单校验器」

    摘录iview表单验证 Form 组件基于 sync-validator 实现的数据验证,给 Form 设置属性 rules,同时给需要验证的 FormItem 设置属性 prop 指向对应字段即可. ...

  3. Angular使用总结 ---以密码确认为例实现模版驱动表单的自定义校验

    上一篇 总结了模版驱动表单的基本用法,示例中的校验使用的是原生HTML5的校验方式,本文补上自定义校验的部分. HTML5原生的表单校验属性(必填,长度限制,取值间隔,正则表达式等等)可以满足普通的校 ...

  4. day75 form 组件(对form表单进行输入值校验的一种方式)

    我们的组件是什么呢 select distinct(id,title,price) from book ORM: model.py class Book(): title=model.CharFiel ...

  5. Laravel Form 表单的数据校验

    例如,要使用手机号加验证码的方式提供登录网站的功能,那么在处理前端提交的 form 表单时,就不得不对提交的手机号及验证码做基本的数据校验. 手写规则,非常浪费时间.使用 laravel 内置的 va ...

  6. struts2 自带的 token防止表单重复提交拦截器

    在struts2中,我们可以利用struts2自带的token拦截器轻松实现防止表单重复提交功能! 1. 在相应的action配置中增加:  <interceptor-ref name=&quo ...

  7. 使用JS完成注册表单的数据校验

    1.前台校验 防君子不防小人 JavaScript被设计用来向HTML页面添加交互行为 JavaScript是一种脚本语言(脚本语言是一种轻量级的编程语言) JavaScript由数行可执行计算机代码 ...

  8. Angular11 模板表单、响应式表单(自定义验证器)、HTTP、表单元素双向绑定

    1 模板表单 模型通过指令隐式创建 技巧01:需要在模块级别引入 FormsModule ,通常在共享模块中引入再导出,然后在需要用到 FormsModule 的模块中导入共享模块就可以啦 impor ...

  9. Dwz/Jquery--使用Ajax提交表单时调用表单设置的校验

    案例 今天有一个需求就是点击按钮时,使用ajax方式提交表单,而且不是直接用form表单下的submit按钮提交,表单中用的校验是dwz 自带的校验方式,表单模板如下: <li><d ...

  10. 关于iview、element-ui重置表单并清除校验的方法

    平时在使用iview或者vue重置表单是时,我会习惯使用 this.$refs[formData].resetFields(); 但是直接这样写上去方法是不起作用的, 内容必须要在每个form-ite ...

随机推荐

  1. 【轻松一刻】Java制作字符动画

    前言 今晚闲来无事,整理了一下电脑中尘封已久的旧代码,看着那些年自己写过的代码,踩过的坑,顿时老泪纵横.正当在感叹之际,突然发现在“马克思”文件夹下出现了一个好玩的项目,那就是N年前刚学Java时写的 ...

  2. HttpResponse与JasonResponse

    两者的含义 我们都知道后台给前台返回的数据都是字符串类型,那么怎么返回成为一个问题 HttpResponse与JasonResponse都是django中后台给前台返回数据的方法, 并且他们最后走的都 ...

  3. ajax对数据删除、查看详情功能

    运用bootstrap,jquery和ajax显示一些数据,附加删除功能并且点击能弹出模态框详情功能 主页面main.php <!DOCTYPE html PUBLIC "-//W3C ...

  4. vue基本语法概要(一)

    先看两种代码,再进行讲解 第一种格式: <template > <div> <div v-for=" item in sites "> < ...

  5. with语句和空语句

    with语句能够为一组语句创建缺省的对象,在一组语句中,任何不指定对象的属性引用都将被认为是缺省对象. 语法如下: with(object){ statements; } <body> & ...

  6. linux使用glibc版本安装mysql8.0.12

    1.前言 使用yum安装虽然很方便,但是如果要是在没有公网的环境下,是没有办法使用yum源的.所以我们可以使用mysql提供的glibc版本的安装包,进行安装. 但是在安装之前,一定要将以前的版本删除 ...

  7. jdk在window系统中的配置

    其实配置很简单,百度上很多配置的复杂化了,今天办公室的某小白百度了半天也没有配置好.   我使用的是Linux ,就很多简单了很多编译器都是集成的,尤其是现在kali linux 系统觉得做得越来也好 ...

  8. 1.使用Vue.js实现品牌案例添加功能

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. webpack中环境变量的使用方法

    这节课讲解一下,在webpack打包过程中,怎么去使用一些环境变量. 首先我有一个打包配置的三个文件 "scripts": { "dev-build": &qu ...

  10. Window脚本学习笔记之BAT简介

    本篇文章不是直接讲技术,而是对我自己学习这些年来的一番感触和简单的介绍,其间也穿插着一些基本的知识,若是学习技术者可跳过,亦不妨碍学习其他. BAT简介 BAT是Windows的批处理脚本,即以后缀“ ...