flask_wtf是flask框架的表单验证模块,可以很方便生成表单,也可以当做json数据交互的验证工具,支持热插拔。
安装
pip install Flask-WTFFlask-WTF其实是对wtforms组件的封装,使其支持对flask框架的热插拔。
简单使用
# app.py from flask import Flask, current_app, request, render_template from forms import MyForm app = Flask(__name__,template_folder='static/html') @app.route('/',methods=['GET','POST']) def login(): form = MyForm() if form.validate_on_submit(): return 'OK' return render_template('forms/index.html', form=form) if __name__ == '__main__': app.run(host='127.0.0.1', port=80, debug=True) # forms.py from flask_wtf import FlaskForm from wtforms import StringField from wtforms.validators import DataRequired class MyForm(FlaskForm): name = StringField('name', validators=[DataRequired()]) # forms/index.html <form method="POST" action="/"> {{ form.csrf_token }} {{ form.name.label }} {{ form.name(size=20) }} <input type="submit" value="Go"> </form>flask_wtf定义字段
flask_wtf完全使用wtforms组件的字段模型,wtforms对字段的定义在fields模块;又分为core和simple,core模块定义了普通使用的字段,simple在core模块的基础上扩展了一些字段,这些字段会自动进行字段级别的校验。
- 字段类型
# core.py __all__ = ( 'BooleanField', 'DecimalField', 'DateField', 'DateTimeField', 'FieldList', 'FloatField', 'FormField', 'IntegerField', 'RadioField', 'SelectField', 'SelectMultipleField', 'StringField', ) 常用字段说明: BooleanField:布尔类型,如Flask,True StringField:字符串类型 DecimalField:小数点文本字段,如:‘1.23’ DateField:日期字段,格式:'%Y-%m-%d' DateTimeField:日期字段,格式:'%Y-%m-%d %H:%M:%S' FieldList:统一字段类型组成列表,如:FieldList(StringField('Name', [validators.required()])) FloatField:浮点数类型 IntegerField:整形 SelectMultipleField:多选框 RadioField:单选框 # simple.py TextAreaField:文本域,可接受多行输入 PasswordField:密码字段,输入的不会直接在浏览器明文显示 FileField:上传文件,但不会处理验证文件,需要手动处理 HiddenField:隐藏字段 SubmitField:按钮 TextField:字符串类型的别名,弃用- 表单定义
# 参数: class UserAdminForm(FlaskForm): username = StringField(label='用户名', validators=[DataRequired(),Length(4,20)]) password_hash = PasswordField(label='密码',validators=[DataRequired(),Length(4,20)]) limit = SelectField(label='用户权限', choices=[('guest', '所有权限'), ('operation', '可读可写不可删除'), ('management'
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率
