flask6:wtform接收及验证json参数

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"

猜你喜欢

转载自blog.csdn.net/qq_18598403/article/details/88046969