flask_restful 中的自定义错误处理程序抛出 NameError

Custom error handler in flask_restful throws NameError

我正在尝试按照 docs 中给出的说明将自定义错误代码添加到 flask_restful API,但是我没有收到正确的响应,我正在NameError: global name 'UnsupportedMediaType' is not defined 条消息。我在这里做错了什么?

# -*- coding: utf-8 -*-

from flask import Flask, request
from flask_restful import Resource, Api

import service

errors = {
    'UnsupportedMediaType': {
        'message': 'Unsupported Media Type',
        'status': 415
    }
}

app = Flask(__name__)
api = Api(app, errors=errors)

class Service(Resource):
    def post(self):
        if request.is_json:
            data = request.get_json()
            return service.handler(args['data'])
        else:
            raise UnsupportedMediaType

api.add_resource(Service, '/')

if __name__ == '__main__':
    app.run(host='0.0.0.0', debug=True)

您必须将错误处理程序存储到一个函数中。像这样:

def error(exception): return {some json error data with the message 'exception'}

现在您可以根据需要调用错误处理程序。

您可以为此使用 Flask 错误处理程序装饰器。这是 link