一  安装wtforms

pip install wtforms

二  导入相关模块及对象

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

三 定义表单类

  1. # 登陆表单
  2. class LoginForm(Form):
  3. name = simple.StringField(
  4. label=u'用户名',
  5. validators=[
  6. validators.DataRequired(message=u'用户名不能为空'),
  7. validators.Length(min=3, max=8, message=u'用户名长度必须大于%(min)d且小于%(max)d')
  8. ],
  9. widget=widgets.TextInput(),
  10. render_kw={'class': 'form-control'}
  11. )
  12. pwd = simple.PasswordField(
  13. label=u'密码',
  14. validators=[
  15. validators.DataRequired(message=u'密码不能为空'),
  16. validators.Length(min=3, max=8, message=u'密码至少大于3个字符'),
  17. validators.Regexp(regex="\d+",
  18. message=u'密码必须是数字')
  19. ],
  20. widget=widgets.PasswordInput(),
  21. render_kw={'class': 'form-control'}
  22. )
  23.  
  24. class Meta:
  25. csrf = False
  26.  
  27. def validate_pwd(self, *args, **kwargs):
  28. pass

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

  1. @app.route('/login', methods=['GET', 'POST'])
  2. def login():
  3. if request.method == 'GET':
  4. form = LoginForm()
  5. return render_template('login.html', form=form)
  6. else:
  7. form = LoginForm(request.form)
  8. if form.validate():
  9. else:
  10. print(form.errors)
  11. return render_template('login.html', form=form)

五 在模板中展示

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <form action="" method="post" novalidate>
  9. <p>{{ form.name.label }} {{ form.name }} {{ form.name.errors.0 }}</p>
  10. <p>{{ form.pwd.label }} {{ form.pwd }} {{ form.pwd.errors.0 }}</p>
  11. <input type="submit" value="提交">
  12. </form>
  13. </body>
  14. </html>

界面展示

flask之wtforms 表单验证(一)的更多相关文章

  1. flask框架(八)—自定义命令flask-script、多app应用、wtforms表单验证、SQLAIchemy

    自定义命令flask-script 用于实现类似于django中 python3 manage.py runserver ...类似的命令,用命令行启动项目 首先安装:pip3 install fla ...

  2. 五十二:WTForms表单验证之基本使用

    作用:1.做表单验证,把用户提交的数据验证是否合法2.做模板渲染 安装:pip install wtforms 表单验证1.自定义一个表单类,继承wtforms.Form2.定义好需要验证的字段,字段 ...

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

    使用WTForms表单验证,可以在数据建模时就设置验证信息和错误提示 创建模型时,设置验证内容,如必填.格式.长度 from flask_wtf import Formfrom wtforms imp ...

  4. Flask wtforms 表单验证使用

    目录 wtforms 使用1(简单版): 使用2(复杂版): wtforms 安装:pip3 install wtforms 使用1(简单版): from flask import Flask, re ...

  5. 五十三:WTForms表单验证之常用验证器

    Email:验证数据是否为邮箱EqualTo:验证此字段的数据是否和另一个字段的值相等,常用与校验密码和确认密码InputRequired:检验数据必传Length:校验数据长度NumberRange ...

  6. 五十四:WTForms表单验证之自定义表单验证器

    如果想要对表单中的某个字段进行自定义验证,则需要对这个字段进行单独的验证1.定义一个方法,命名规则为:validate_字段名(self, filed)2.在方法中,使用filed.data获取字段的 ...

  7. 五十五:WTForms表单验证之渲染模板

    此功能看似强大,实则鸡肋 from wtforms import Form, StringField, BooleanField, SelectFieldfrom wtforms.validators ...

  8. Flask基础(16)-->WTForms表单创建和简单验证

    Flask基础(16)-->WTForms表单创建和简单验证 前言:使用Flask_WTF需要配置参数SECRET_KEYCSRF_ENABLED是为了CSRF(跨站请求伪造)保护.SECRET ...

  9. 使用 WTForms 进行表单验证的例子

    #使用 WTForms 进行表单验证的例子 from wtforms import Form from wtforms import BooleanField from wtforms import ...

随机推荐

  1. Zabbix监控详解

    Zabbix是什么 Zabbix 是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持. Zabbix 是一个企业级的分布式开源监控方案. Zabbix是一款能够监控各 ...

  2. [ActionSprit 3.0] FMS远程共享

    package { import flash.display.Sprite; import flash.events.NetStatusEvent; import flash.events.SyncE ...

  3. 关于Socket通讯中的Close_wait状态

    关于Socket通讯中的Close_wait状态 文/转 编辑 编者按:使用Socket通讯,有时我们查看端口状态的时候,经常会发现Socket处于close_wait状态,从而影响系统性能,此文或许 ...

  4. Python自动发送HTML测试报告

    在我们做自动化测试的时候,执行完所有的测试用例,我们是希望马上得到结果的,那么我们不可能一直盯着去看,这个时候就需要引入邮件功能 1.首先我们使用一个python的第三方发邮件的库 yagmail g ...

  5. React.Children详解

    React.Children提供了处理this.props.children的工具,this.props.children可以任何数据(组件.字符串.函数等等).React.children有5个方法 ...

  6. ubuntu->错误

    1.dpkg *** locked 原因:安装某个包不成功, 可以使用命令 dpkg --configure -a 来重启中断的安装过程 如果屡次安装不成功放弃安装,则删除 lock 2.flashp ...

  7. [整理] Nginx Location 匹配规则

    目录 规则语法 location 分类 匹配顺序: 扩展 location / {}和 location =/ {}的区别 如何快速测试 规则语法 语法 匹配规则 空 普通匹配(遵循最大前缀匹配规则, ...

  8. ORM中的一对一和多对多

    ORM中的一对一和多对多 Django ORM  ORM 一对一 什么时候用一对一? 当 一张表的某一些字段查询的比较频繁,另外一些字段查询的不是特别频繁 把不怎么常用的字段 单独拿出来做成一张表 然 ...

  9. java中+=与+的区别

    public class QQ { public static void main(String[] args) throws ParseException { byte val1 = 5; doub ...

  10. FormsAuthentication实现登录(转)

    配置项描述: <authentication mode="Forms"> <forms name=".ASPXAUTH" loginUrl=& ...