测开之路一百四十八:WTForms表单验证

 

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

 

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

测开之路一百四十八:WTForms表单验证_第1张图片

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('同意协议才可以注册')])

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

测开之路一百四十八:WTForms表单验证_第2张图片





用户注册



{#form要求加上form.csrf_token方脚本跨域攻击#}
{{ form.csrf_token }}




{# 如果有错误信息,就遍历出来#}

























{{ form.username.label }} {{ form.username }}
{% if form.username.errors %}
{% for error in form.username.errors %}
  • {{ error }}

  • {% endfor %}
    {% endif %}
    {{ form.email.label }} {{ form.email }}
    {% if form.email.errors %}
    {% for error in form.email.errors %}
  • {{ error }}

  • {% endfor %}
    {% endif %}
    {{ form.password.label }} {{ form.password }}
    {% if form.password.errors %}
    {% for error in form.password.errors %}
  • {{ error }}

  • {% endfor %}
    {% endif %}
    {{ form.confirm.label }} {{ form.confirm }}
    {% if form.confirm.errors %}
    {% for error in form.confirm.errors %}
  • {{ error }}

  • {% endfor %}
    {% endif %}
    {{ form.accept }}{{ form.accept.label }}



    路由

    测开之路一百四十八:WTForms表单验证_第3张图片

    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)

    访问并触发验证

    测开之路一百四十八:WTForms表单验证_第4张图片测开之路一百四十八:WTForms表单验证_第5张图片

     

    输入符合要求的数据访问

     

    你可能感兴趣的:(测开之路一百四十八:WTForms表单验证)