flask参数校验自定义返回

编程入门 行业动态 更新时间:2024-10-21 17:26:06

flask参数校验<a href=https://www.elefans.com/category/jswz/34/1771438.html style=自定义返回"/>

flask参数校验自定义返回

parser = RequestParser()
parser.add_argument('name', type=str, required=True, location='json')
args = parser.parse_args()

上面是默认情况,如果参数校验出错,会返回:

{"message": {"name": "Missing required parameter in the JSON body"}
}

这可能不满足项目接口返回到要求,需要进行改造:

from flask_restful.reqparse import Argument,RequestParser#继承Argument,重写handle_validation_error
class APIArgument(Argument):def __init__(self, *args, **kwargs):super(APIArgument, self).__init__(*args, **kwargs)def handle_validation_error(self, error, bundle_errors):error_msg = self.help.format(error_msg=str(error)) if self.help else str(error)if bundle_errors:return error, {self.name: error_msg}return abort(Response(json.dumps({"errcode": 400, "errmsg": f"{self.name} : {error_msg}"}),mimetype="application/json",status=200,))class xxx(Resource):@staticmethoddef validate_email(value, name):if re.match(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$', value):return valueelse:raise ValueError(f'请输入正确的邮箱')parser = RequestParser(APIArgument) # 使用自定义的Argumentparser.add_argument('name', type=str, required=True, location='json')parser.add_argument('email', type=self.validate_email, required=True, location='json')args = parser.parse_args()

改造后,参数验证失败的返回是:

{"errcode": 400,"errmsg": "name : Missing required parameter in the JSON body"
}

更多推荐

flask参数校验自定义返回

本文发布于:2023-11-16 17:24:44,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1628031.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:自定义   参数   flask

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!