2017-09-14 83 views
0

我试图将一个自定义错误代码添加到flask_restful API中,遵循docs中给出的指示,但是我没有收到正确的回复,并且收到了NameError: global name 'UnsupportedMediaType' is not defined消息。我在这里做错了什么?flask_restful中的自定义错误处理程序引发NameError

# -*- 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) 

回答

1

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

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

现在,只要你想,你可以调用错误处理程序。

OR

您可以使用瓶错误处理程序装饰了点。继承人link