• 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>

    界面展示

  • 相关阅读:
    Python 生成器
    Python 切片
    Visual Studio Code编辑器使用
    linux常用命令
    python selenium学习笔记
    selenium+chrome driver 报错处理 (Driver info: chromedriver=2.45.615291 (ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387),platform=Windows NT 10.0.17763 x86_64)
    python+uiautomator2+fiddler 自动化测试学习总结
    我的第一篇博客
    计算机网络差错控制基本方法
    计算机网络复习笔记(简略)
  • 原文地址:https://www.cnblogs.com/lfxiao/p/9184032.html
Copyright © 2020-2023  润新知