1. 一、安装pip install flask-wtf
  2.  
  3. 二、创建一个flask的项目引入相对应的包
  4.  
  5. from flask import Flask,render_template
  6. import flask
  7. #引入模块
  8. from flask_wtf import FlaskForm,CsrfProtect
  9. #如果输入的是字符串那么就用StringField,如果是整数那么就用IntegerField
  10. from wtforms import StringField,IntegerField
  11. #验证方式
  12. from wtforms.validators import Length,EqualTo,InputRequired
  13.  
  14. 三、配置文件
  15.  
  16. #coding:utf8
  17. import os
  18. SECRET_KEY = os.urandom(24)
  19.  
  20. 四、配置
  21.  
  22. import config
  23. app = Flask(__name__)
  24. app.debug = True
  25. app.config.from_object(config)
  26. CsrfProtect(app)
  27.  
  28. 五、创建一个验证的类
  29.  
  30. class RegistForm(FlaskForm):
  31. username = StringField(validators=[Length(min=3,max=10,message=u"用户名长度有问题")])
  32. password = StringField(validators=[Length(min=6,max=20)])
  33. age = IntegerField(validators=[InputRequired()])
  34.  
  35. 六、在路由代码中使用
  36.  
  37. @app.route('/',methods=["GET","POST"])
  38. def index():
  39. if flask.request.method == "GET":
  40. return render_template("index.html")
  41. else:
  42. form = RegistForm(flask.request.form)
  43. if form.validate():
  44. username = form.username.data
  45. password =form.password.data
  46. print username,password
  47. return u"登录成功"
  48. else:
  49. print form.errors
  50. return u"错误"
  51.  
  52. 注意点:创建的验证类的字段要和前端html模板页面的name值的一样的
  53. 七、WTForms支持的HTML标准字段
  54.  
  55. 字段类型 说  明
  56. StringField 文本字段
  57. TextAreaField 多行文本字段
  58. PasswordField 密码文本字段
  59. HiddenField 隐藏文本字段
  60. DateField 文本字段,值为 datetime.date 格式
  61. DateTimeField 文本字段,值为 datetime.datetime 格式
  62. IntegerField 文本字段,值为整数
  63. DecimalField 文本字段,值为 decimal.Decimal
  64. FloatField 文本字段,值为浮点数
  65. BooleanField 复选框,值为 True False
  66. RadioField 一组单选框
  67. SelectField 下拉列表
  68. SelectMultipleField 下拉列表,可选择多个值
  69. FileField 文件上传字段
  70. SubmitField 表单提交按钮
  71. FormField 把表单作为字段嵌入另一个表单
  72. FieldList 一组指定类型的字段
  73.  
  74. 八、常见的验证函数
  75.  
  76. 验证函数 说  明
  77. Email 验证电子邮件地址
  78. EqualTo 比较两个字段的值;常用于要求输入两次密码进行确认的情况
  79. IPAddress 验证 IPv4 网络地址
  80. Length 验证输入字符串的长度
  81. NumberRange 验证输入的值在数字范围内
  82. Optional 无输入值时跳过其他验证函数
  83. Required 确保字段中有数据
  84. Regexp 使用正则表达式验证输入值
  85. URL 验证 URL
  86. AnyOf 确保输入值在可选值列表中
  87. NoneOf 确保输入值不在可选值列表中

flask表单flask-wtf的更多相关文章

  1. flask表单,orm,csrf

    flask表单是flask中最基本的功能. 它是负责HTML页面中数据采集的部分,它由三部分组成:表单标签,表单域,表单按钮组成,通过表单用户输入的数据提交给服务器. flask表单封装了WTForm ...

  2. Flask表单(Flask-WTF)

    1.request.from获取POST表单数据 # hello.py #coding:utf-8 from flask import Flask,request,render_template ap ...

  3. Flask从入门到精通之Flask表单渲染成HTML

    表单字段是可调用的,在模板中调用后会渲染成HTML.假设视图函数把一个NameForm 实例通过参数form 传入模板,在模板中可以生成一个简单的表单,如下所示: <form method=&q ...

  4. Flask从入门到精通之Flask表单

    Flask请求对象包含客户端发出的所有请求信息.其中,request.form 能获取POST 请求中提交的表单数据.尽管Flask 的请求对象提供的信息足够用于处理Web 表单,但有些任务很单调,而 ...

  5. flask表单提交的两种方式

    一.通用方式 通用方式就是使用ajax或者$.post来提交. 前端html <form method="post" action="/mockservice&qu ...

  6. Flask表单(form)的应用

    导入模块request模块 #指定请求方式,使用methods属性 @app.route("/",methods=['GET','POST']) def index(): #判断c ...

  7. flask 表单

    表单 在Web程序中,表单时和用户交互最常见的方式之一.用户注册.登录.撰写文章.编辑设置,无一不用到表单.不过,表单的处理不简单.要创建表单,验证用户输入的内容,向用户显示错误提示,还要获取并保存数 ...

  8. flask表单标签

    环境:python2.7+flask+flask_wtf 内容:flask的部分常用表单标签 test.py # -*- coding: utf-8 -*- # flask web_form 表单控件 ...

  9. Flask表单验证

    学习内容:①判断请求方式(request.method) from flask import Flask,render_template,request app = Flask(__name__) @ ...

随机推荐

  1. JMeter的使用——ApacheJMeterTemporaryRootCA.crt的用法

    在使用JMeter的时候,启动HTTP代理服务器弹出的那个提示框一直不知道是什么意思,刚刚弄明白了,在JMeter2.1之后,通过JMeter的代理服务器来访问https安全连接的网页的时候,浏览器会 ...

  2. php 递归求得目录大小

    /* * 递归求得目录大小 * @param $dir 目录 */ function dirsize($dir){ $allsize = 0; $handle = opendir($dir); whi ...

  3. P1129 [ZJOI2007]矩阵游戏(二分图,网络流)

    传送门 这推导过程真的有点可怕的说……完全想不出来…… 最终状态是$(1,1),(2,2),(3,3)...(n,n)$都有一个黑点 我们可以理解为每一个行和列都形成了一个匹配 换句话说,只要$n$行 ...

  4. postgreSQL PL/SQL编程学习笔记(六)——杂七杂八

    1 PL/pgSQL Under the Hood This part discusses some implementation details that are frequently import ...

  5. mac下对NTFS格式的磁盘进行读写操作

    mac对NTFS格式的分区读写有很大的限制,网上看到很多相关的文章,都表明了一个信息:需要购买类似NTFS for mac这样的软件才能实现对NTFS格式的分区读写的权限,其实不然,mac自带的hdi ...

  6. 使用过多的递归出现错误,“System.StackOverflowException”类型的未经处理的异常在 mscorlib.dll 中发生

    class Program { static void Main(string[] args) { sub(0); }     private static void sub(int count) { ...

  7. springboot整合activemq加入会签,自动重发机制,持久化

    消费者客户端成功接收一条消息的标志是:这条消息被签收. 消费者客户端成功接收一条消息一般包括三个阶段:          1.消费者接收消息,也即从MessageConsumer的receive方法返 ...

  8. sharding-jdbc数据分片配置

    数据分片 不使用Spring 引入Maven依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> ...

  9. asp.net MVC中的@model与Model

    asp.net MVC中的@model与Model https://blog.csdn.net/ydm19891101/article/details/44301201 在MVC的实际使用中,我们经常 ...

  10. 域名dns 查询

    腾讯云 DNS 使用不同套餐版本的解析分别为不同集群,每种集群对应的 DNS 地址是不同的: 解析套餐版本 DNS 地址 备注 免费 DNS 地址 f1g1ns1.dnspod.net/f1g1ns2 ...