细说flask表单flask-wtf

来源:互联网 发布:jni java传递byte数组 编辑:程序博客网 时间:2024/05/29 16:35

一、安装pip install flask-wtf

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

from flask import Flask,render_templateimport flask#引入模块from flask_wtf import FlaskForm,CsrfProtect#如果输入的是字符串那么就用StringField,如果是整数那么就用IntegerFieldfrom wtforms import StringField,IntegerField#验证方式from wtforms.validators import Length,EqualTo,InputRequired

三、配置文件

#coding:utf8import osSECRET_KEY = os.urandom(24)

四、配置

import configapp = Flask(__name__)app.debug = Trueapp.config.from_object(config)CsrfProtect(app)

五、创建一个验证的类

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()])

六、在路由代码中使用

@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"错误"

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

七、WTForms支持的HTML标准字段

字段类型      说  明StringField 文本字段TextAreaField 多行文本字段PasswordField 密码文本字段HiddenField 隐藏文本字段DateField 文本字段,值为 datetime.date 格式DateTimeField 文本字段,值为 datetime.datetime 格式IntegerField 文本字段,值为整数DecimalField 文本字段,值为 decimal.DecimalFloatField 文本字段,值为浮点数BooleanField 复选框,值为 TrueFalseRadioField 一组单选框SelectField 下拉列表SelectMultipleField 下拉列表,可选择多个值FileField 文件上传字段SubmitField 表单提交按钮FormField 把表单作为字段嵌入另一个表单FieldList 一组指定类型的字段

八、常见的验证函数

验证函数 说  明Email 验证电子邮件地址EqualTo 比较两个字段的值;常用于要求输入两次密码进行确认的情况IPAddress 验证 IPv4 网络地址Length 验证输入字符串的长度NumberRange 验证输入的值在数字范围内Optional 无输入值时跳过其他验证函数Required 确保字段中有数据Regexp 使用正则表达式验证输入值URL 验证 URLAnyOf 确保输入值在可选值列表中NoneOf 确保输入值不在可选值列表中
0 0
原创粉丝点击