使用WTForms表单验证,可以在数据建模时就设置验证信息和错误提示

创建模型时,设置验证内容,如必填、格式、长度

from flask_wtf import Form
from wtforms import StringField, PasswordField, BooleanField
from wtforms import validators class UserRegForm(Form):
username = StringField('用户名',
[validators.DataRequired('用户名必填!'), validators.Length(min=4, max=8, message='长度为4-8之间')]) email = StringField('邮箱', [validators.Email('邮箱格式不正确')]) password = PasswordField('密码',
[validators.DataRequired('密码必填!'), validators.Length(min=6, max=16, message='长度为6-16之间')]) confirm = PasswordField('确认密码', [validators.EqualTo('password', message='密码输入不一致')])
accept = BooleanField('同意协议', [validators.DataRequired('同意协议才可以注册')])

前台页面,渲染数据信息和错误信息

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户注册</title>
</head>
<body>
<form action="#" method="POST">
{#form要求加上form.csrf_token方脚本跨域攻击#}
{{ form.csrf_token }}
<table border="1">
<tr>
<td>{{ form.username.label }}</td>
<td>{{ form.username }}</td>
{# 如果有错误信息,就遍历出来#}
<td>
{% if form.username.errors %}
{% for error in form.username.errors %}
<li>{{ error }}</li>
{% endfor %}
{% endif %}
</td>
</tr>
<tr>
<td>{{ form.email.label }}</td>
<td>{{ form.email }}</td>
<td>
{% if form.email.errors %}
{% for error in form.email.errors %}
<li>{{ error }}</li>
{% endfor %}
{% endif %}
</td>
</tr>
<tr>
<td>{{ form.password.label }}</td>
<td>{{ form.password }}</td>
<td>
{% if form.password.errors %}
{% for error in form.password.errors %}
<li>{{ error }}</li>
{% endfor %}
{% endif %}
</td>
</tr>
<tr>
<td>{{ form.confirm.label }}</td>
<td>{{ form.confirm }}</td>
<td>
{% if form.confirm.errors %}
{% for error in form.confirm.errors %}
<li>{{ error }}</li>
{% endfor %}
{% endif %}
</td>
</tr>
<tr>
<td></td>
<td>{{ form.accept }}{{ form.accept.label }}</td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="提交"></td>
</tr>
</table>
</form>
</body>
</html>

路由

from flask import Flask, render_template, request

app = Flask(__name__, static_url_path='')  # 初始化app,

@app.route('/reg/', methods=['GET', 'POST'])
def user_reg():
from validations.froms import UserRegForm
form = UserRegForm(request.form)
if request.method == 'POST' and form.validate():
return str(form.data)
return render_template('user-reg.html', form=form)

访问并触发验证

输入符合要求的数据访问

最新文章

  1. css3控制标题字数超出的部分自动显示为“...”省略号
  2. Func与Action
  3. 攒机I7
  4. 1、C#入门第一课
  5. wordpress代理设置
  6. Unity3d修改FBX文件的动画名方法
  7. .ssh 文件夹权限设置问题
  8. servlet方式通过Cookie记住登录时的用户名和密码
  9. Android代码混淆和项目宣布步骤记录器
  10. Mac系统安装Aircrack-ng破解附近wifi密码(1)
  11. MUI 页面传值,因为用的是H5+ plus方法所以要在真机上才能测试出效果
  12. go语言基础知识笔记(二)之数组和切片
  13. 自学大数据(hadoop)第一天
  14. IDEA的Database管理台如何显示
  15. 如何在EXCEL中找出第一列中不包含的第二列数据
  16. 【springBoot】之概述
  17. 中美会计准则差异比较(PRC GAAP VS US GAAP)
  18. vim编程设置
  19. Android Parcel对象详解
  20. Linux下Python安装(脚本全)

热门文章

  1. php引用 &amp; 详解
  2. linux centos中安装flash player
  3. C++ 程序设计语言
  4. linux上安装Eclipse
  5. Generative Adversarial Nets(GAN Tensorflow)
  6. P1903 奖学金题解
  7. 给oracle命令的参数赋值
  8. Eclipse/MyEclipse超全常用快捷键汇总,绝对实用
  9. h5页面ios键盘弹出收起后页面底部留白问题
  10. 对js库的调研研究------引用