Flask之WTForms常用验证器


WTForms常用验证器

  • 页面把数据提交上来,需要经过表单验证,进而需要借助验证器来进行验证

常用的内置验证器:

  1. Length:字符串长度限制,有minmax两个值进行限制。
  2. EqualTo:验证数据是否和另外一个字段相等,常用的就是密码和确认密码两个字段是否相等。
  3. Email:验证上传的数据是否为邮箱数据格式 如:python123.@163.com
  4. InputRequired:验证该项数据为必填项,即要求该项非空
  5. NumberRange:数值的区间,有minmax两个值限制,如果处在这两个数字之间则满足。
  6. Regexp:定义正则表达式进行验证,如验证手机号码
  7. URL:必须是URL的形式 如https://www.baidu.com
  8. UUID:验证数据是UUID类型。

数据项的类型,一般常用的有:


StringField		文本类型
IntegerField	数字类型
RadioField		单选框
BooleanField	复选框
SelectField		下拉框
TextAreaField	文本域
DateField		日期类型

from wtforms import Form,StringField,IntegerField,RadioField,
from wtforms import BooleanField,SelectField,TextAreaField,DateField 

	

验证实用

  • html页面:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8">  
	<title>注册页面2</title> 
</head> 
<body> 
<form action="/register2/" method="post"> 
	<table> 
		<tr> 
			<th>邮箱:</th> 
			<td><input type="email" name="email"></td> 
		</tr> 
		<tr> 
			<th>用户名:</th> 
			<td><input type="text" name="uname"></td> 
		</tr> 
		<tr> 
			<th>年龄:</th> 
			<td><input type="number" name="age"></td> 
		</tr> 
		<tr> 
			<th>手机号码:</th> 
			<td><input type="text" name="phone"></td> 
		</tr> 
		<tr> <
			th>个人主页:</th> 
			<td><input type="text" name="phomepage"></td> 
		</tr> 
		<tr> 
			<th>uuid:</th> 
			<td><input type="text" name="uuid"></td> 
		</tr> 
		<tr> 
			<th></th> 
			<td><input type="submit" value="注册"></td> 
		</tr> 
	</table> 
</form> 
</body>
</html>

  • python表单验证工具类文件:

from wtforms import Form,StringField,IntegerField 
from wtforms.validators import Length,EqualTo,Email,InputRequired,NumberRange,Regexp,URL,UUID 

class RegisterForm(Form): 
	uname =StringField(validators=[Length(min=2,max=15,message='用户名长度必须在2-15之间')]) 
	pwd = StringField(validators=[Length(min=6,max=12)]) 
	pwd2 = StringField(validators=[Length(min=6,max=12),EqualTo("pwd")]) 

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()])

  • python项目入口文件:

from flask import Flask,request,render_template 
from formscheck import RegisterForm 

app = Flask(__name__) 

@app.route('/') 
def hello_world(): 
return render_template("register.html") 
#基本使用 

@app.route('/register/',methods=['GET','POST']) 
def register(): 
if request.method == 'GET': 
return render_template('register.html') 
else: 
form = RegisterForm(request.form) 

if form.validate(): 
#验证 要么ok 要么no 
return "验证通过" 
else: 
print(form.errors) 
return "数据验证通不过" 

#常用验证器使用 
@app.route('/register2/',methods=['GET','POST']) 
	def login(): 
		if request.method == 'GET': 
			return render_template("register2.html") 
		else: 
			form = RegisterForm2(request.form) 
		if form.validate(): 
			return "验证OK" 
		else: 
			print(form.errors) 
			return "验证失败" 
import uuid 
print(uuid.uuid4())

if __name__ == '__main__': 
app.run(debug=True)


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值