一、安装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 复选框,值为 True 和 FalseRadioField 一组单选框SelectField 下拉列表SelectMultipleField 下拉列表,可选择多个值FileField 文件上传字段SubmitField 表单提交按钮FormField 把表单作为字段嵌入另一个表单FieldList 一组指定类型的字段八、常见的验证函数验证函数 说 明Email 验证电子邮件地址EqualTo 比较两个字段的值;常用于要求输入两次密码进行确认的情况IPAddress 验证 IPv4 网络地址Length 验证输入字符串的长度NumberRange 验证输入的值在数字范围内Optional 无输入值时跳过其他验证函数Required 确保字段中有数据Regexp 使用正则表达式验证输入值URL 验证 URLAnyOf 确保输入值在可选值列表中NoneOf 确保输入值不在可选值列表中