flask-wtf 详解

一、安装pip install flask-wtf

二、创建一个flask的项目引入相对应的包

from flask import Flask,render_template
import flask
#引入模块
from flask_wtf import FlaskForm,CsrfProtect
#如果输入的是字符串那么就用StringField,如果是整数那么就用IntegerField
from wtforms import StringField,IntegerField
#验证方式
from wtforms.validators import Length,EqualTo,InputRequired
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

三、配置文件

#coding:utf8
import os
SECRET_KEY = os.urandom(24)
  • 1
  • 2
  • 3

四、配置

import config
app = Flask(__name__)
app.debug = True
app.config.from_object(config)
CsrfProtect(app)
  • 1
  • 2
  • 3
  • 4
  • 5

五、创建一个验证的类

class RegistForm(FlaskForm):
    username = StringField(validators=[Length(min=3,max=10,message=u"用户名长度有问题")])
    password = StringField(validators=[Length(min=6,max=20)])
    age = IntegerField(validators=[InputRequired()])
  • 1
  • 2
  • 3
  • 4

六、在路由代码中使用

@app.route('/',methods=["GET","POST"])
def index():
    if flask.request.method == "GET":
        return render_template("index.html")
    else:
        form = RegistForm(flask.request.form)
        if form.validate():
            username = form.username.data
            password =form.password.data
            print username,password
            return u"登录成功"
        else:
            print form.errors
            return u"错误"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

注意点:创建的验证类的字段要和前端html模板页面的name值的一样的

七、WTForms支持的HTML标准字段

字段类型      说  明
StringField 文本字段
TextAreaField 多行文本字段
PasswordField 密码文本字段
HiddenField 隐藏文本字段
DateField 文本字段,值为 datetime.date 格式
DateTimeField 文本字段,值为 datetime.datetime 格式
IntegerField 文本字段,值为整数
DecimalField 文本字段,值为 decimal.Decimal
FloatField 文本字段,值为浮点数
BooleanField 复选框,值为 TrueFalse
RadioField 一组单选框
SelectField 下拉列表
SelectMultipleField 下拉列表,可选择多个值
FileField 文件上传字段
SubmitField 表单提交按钮
FormField 把表单作为字段嵌入另一个表单
FieldList 一组指定类型的字段
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

八、常见的验证函数

验证函数 说  明
Email 验证电子邮件地址
EqualTo 比较两个字段的值;常用于要求输入两次密码进行确认的情况
IPAddress 验证 IPv4 网络地址
Length 验证输入字符串的长度
NumberRange 验证输入的值在数字范围内
Optional 无输入值时跳过其他验证函数
Required 确保字段中有数据
Regexp 使用正则表达式验证输入值
URL 验证 URL
AnyOf 确保输入值在可选值列表中
NoneOf 确保输入值不在可选值列表中
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值