1.定义json参数验证基类
from flask import request
from wtforms import Form
from app.libs.error_code import ParameterException
# Json 基础验证器
class BaseForm(Form):
# 接收Jason参数
def __init__(self):
data = request.get_json(silent=True)
args = request.args.to_dict()
super(BaseForm, self).__init__(data=data, **args)
# 对验证错误的参数抛出异常
def validate_for_api(self):
valid = super(BaseForm, self).validate()
if not valid:
# form errors
raise ParameterException(msg=self.errors)
return self
2.定义验证类
from wtforms import StringField, IntegerField
from wtforms.validators import DataRequired, length, Email, Regexp
from app.sys.admin.validators.base import BaseForm
class TestForm(BaseForm):
account = StringField(validators=[DataRequired(message='不允许为空'), length(
min=5, max=32
)])
secret = StringField(validators=[DataRequired(message='不允许为空')])
3.接受并验证参数
@api.route('/check', methods=['POST'])
def check_user():
form = TestForm()
if form.validate_for_api():
return form.account.data+"|"+form.secret.data
else:
return "validate fail"