Email:验证数据是否为邮箱
EqualTo:验证此字段的数据是否和另一个字段的值相等,常用与校验密码和确认密码
InputRequired:检验数据必传
Length:校验数据长度
NumberRange:检验数据需在指定数字的区间
Regexp:自定义正则表达式(如手机号码)
URL:必须是url的形式
UUID:必须是UUID

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册</title>
</head>
<body>
<form action="#" method="post">
<table>
<tbody>
<tr>
<td>用户名:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>邮箱:</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td>年龄:</td>
<td><input type="text" name="age"></td>
</tr>
<tr>
<td>手机号:</td>
<td><input type="text" name="phone"></td>
</tr>
<tr>
<td>个人主页:</td>
<td><input type="text" name="home_page"></td>
</tr>
<tr>
<td>uuid:</td>
<td><input type="text" name="uuid"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="text" name="password"></td>
</tr>
<tr>
<td>确认密码:</td>
<td><input type="text" name="check_password"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="点击注册"></td>
</tr>
</tbody>
</table>
</form>
</body>
</html>

from wtforms import Form, StringField, IntegerField
from wtforms.validators import Length, EqualTo, Email, InputRequired, NumberRange, Regexp, URL, UUID class RegistForm(Form):
""" 注册参数验证 """
# form表单中参数的name属性值
username = StringField(validators=[Length(3, 10, message='用户名长度为3~10位')])
email = StringField(validators=[Email(message='非邮箱格式')])
password = StringField(validators=[InputRequired(message='密码必传'), Length(6, 10, message='密码长度为6~10位')])
check_password = StringField(validators=[Length(6, 10, message='密码长度为6~10位'), EqualTo('password', message='两次密码不一致')])
age = IntegerField(validators=[NumberRange(18, 50, message='年龄需为18~50岁')])
phone = StringField(validators=[Regexp(r'1[34578]\d{9}', message='手机号格式错误')])
home_page = StringField(validators=[URL(message='home_page必须为url格式')])
uuid = StringField(validators=[UUID(message='uuid格式错误')])

from flask import Flask, request, render_template

from forms import RegistForm

app = Flask(__name__)

@app.route('/regist/', methods=['GET', 'POST'])
def regist():
form = RegistForm(request.form)
if request.method == 'POST':
if form.validate():
return '验证通过'
else:
print(form.errors)
return form.errors
return render_template('regist.html') if __name__ == '__main__':
app.run(debug=True)

最新文章

  1. 谈谈MVC项目中的缓存功能设计的相关问题
  2. js判断密码强度
  3. 交叉编译mips平台上valgrind
  4. 在ubuntu下安装phpmyadmin 出现404错误
  5. tomcat配置301重定向(urlRewrite URL重写)
  6. CSS書寫規範及CSS Hack
  7. WordPress Cart66 Lite插件HTML注入漏洞
  8. poj1742 多重背包的可行性问题
  9. EBS预置文件作用收集整理
  10. 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之五 || Swagger的使用 3.3 JWT权限验证【必看】
  11. 查看pip安装的Python库
  12. [PHP]防止表单重复提交的几种方法
  13. yolo源码解析(一)
  14. leetcode504
  15. 关于EF Unit of Work Repository的简单用法
  16. sqlsever实现更改字段名
  17. C#有关的vshost、exe、config格式说明
  18. WebCollector2.7爬虫框架——在Eclipse项目中配置
  19. source insight 设置自动缩进
  20. Entity Framework 6 暂停重试执行策略

热门文章

  1. unix/linux静态库简介
  2. 使用 jenkins 为 nginx 增加上下文
  3. “美登杯”上海市高校大学生程序设计赛B. 小花梨的三角形(模拟,实现)
  4. R树-javascript代码实现过程分析(插入操作)
  5. IO框架:asyncio 上篇
  6. 将 对象序列化与反序化 (json格式)
  7. python3爬虫--shell命令的使用和firefox firebug获取目标信息的xpath
  8. input框输入手机号码分隔显示
  9. C语言 - sizeof和strlen的区别
  10. 移动端布局Rem