• flask之wtforms 表单验证(一)


    一  安装wtforms

     pip install wtforms

    二  导入相关模块及对象

    from wtforms import Form, widgets, validators
    from wtforms.fields import simple

     三 定义表单类

    # 登陆表单
    class LoginForm(Form):
        name = simple.StringField(
            label=u'用户名',
            validators=[
                validators.DataRequired(message=u'用户名不能为空'),
                validators.Length(min=3, max=8, message=u'用户名长度必须大于%(min)d且小于%(max)d')
            ],
            widget=widgets.TextInput(),
            render_kw={'class': 'form-control'}
        )
        pwd = simple.PasswordField(
            label=u'密码',
            validators=[
                validators.DataRequired(message=u'密码不能为空'),
                validators.Length(min=3, max=8, message=u'密码至少大于3个字符'),
                validators.Regexp(regex="d+",
                                  message=u'密码必须是数字')
            ],
            widget=widgets.PasswordInput(),
            render_kw={'class': 'form-control'}
        )
    
        class Meta:
            csrf = False
    
        def validate_pwd(self, *args, **kwargs):
            pass

     四 在视图函数中将表单对象传给模板进行渲染

    @app.route('/login', methods=['GET', 'POST'])
    def login():
        if request.method == 'GET':
            form = LoginForm()
            return render_template('login.html', form=form)
        else:
            form = LoginForm(request.form)
            if form.validate():
            else:
                print(form.errors)
            return render_template('login.html', form=form)

    五 在模板中展示

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <form action="" method="post" novalidate>
        <p>{{ form.name.label }} {{ form.name }} {{ form.name.errors.0 }}</p>
        <p>{{ form.pwd.label }} {{ form.pwd }} {{ form.pwd.errors.0 }}</p>
        <input type="submit" value="提交">
    </form>
    </body>
    </html>

    界面展示

  • 相关阅读:
    cocos2dx-基本动画制作
    cocos2dx-CCScrollView的制作
    回调函数的作用
    cocos2dx-Action动作
    cocos2dx-cpptest的结构
    重载函数
    .h和.cpp的用法与区别
    NDK配置之体会
    Cocos2d-x 3.1 内存管理机制
    idea spring boot
  • 原文地址:https://www.cnblogs.com/lfxiao/p/9184032.html
Copyright © 2020-2023  润新知