wtforms
是 Python
的表单组件,用于表达数据的验证。
一、安装
pip3 install wtforms
二、组成
wtforms
依照功能类别来说wtforms
分别由以下几个类别:
Forms
: 主要用于表单验证、字段定义、HTML
生成,并把各种验证流程聚集在一起进行验证。Fields
: 主要负责渲染(生成HTML
)和数据转换。Validator
:主要用于验证用户输入的数据的合法性。比如Length
验证器可以用于验证输入数据的长度。Widgets
:html插件,允许使用者在字段中通过该字典自定义html
小部件。Meta
:用于使用者自定义wtforms
功能,例如csrf
功能开启。Extensions
:丰富的扩展库,可以与其他框架结合使用,例如django
。Flask
信号机制(signal
)
三、使用Forms
进行表单验证
首先给出一个简单的示例程序,web
部分使用的是 Flask
,换成 tornado
、aiohttp
等都是一样的。
# coding=utf-8
from flask import Flask, request
from multidict import MultiDict
from wtforms import Form, StringField, validators, ValidationError
# 定义 app 实例
app = Flask(__name__)
# 表单验证类
class ActionForm(Form):
action = StringField('action', [validators.DataRequired()])
@app.route("/test", methods=['POST'])
def action():
post_data = request.json
_form = ActionForm(MultiDict(post_data))