热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

flask之wtforms表单验证(一)

一 安装wtforms pipinstallwtforms二 导入相关模块及对象 fromwtformsimportForm,widgets,validatorsfromwtfor

一  安装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)

五 在模板中展示

"en">

    "UTF-8">
    


"" method="post" novalidate>
    

{{ form.name.label }} {{ form.name }} {{ form.name.errors.0 }}

{{ form.pwd.label }} {{ form.pwd }} {{ form.pwd.errors.0 }}

"submit" value="提交">

 

 

界面展示

flask之wtforms 表单验证(一)

 


推荐阅读
author-avatar
手机用户2502883501
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有