小编Lee*_* LI的帖子

引入flask_restful后,flask errorhandler在gunicorn中不起作用

我正在烧瓶中开发 REST API 并计划在 Gunicorn 中运行它。在我的应用程序中,一个用户定义的异常由flask errorhandler 装饰器处理。它在 Flask 内置网络服务器和 Gunicorn 中都能正常工作。响应可以从装饰函数生成。引入flask_restful 后,内置服务器工作正常,但在Gunicorn 中,响应始终为{"message": "Internal Server Error"}

这是源代码:myapp.py

from flask import Flask, jsonify, make_response
from flask_restful import Api, Resource


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


class OrderNotExistError(Exception):
    def __init__(self, order_id):
        self.message = 'Order [{order_id}] does not exist.'.format(order_id=order_id)


@app.errorhandler(OrderNotExistError)
def order_not_exist(error):
    return make_response(jsonify({'message': error.message}), 404)


class OrderAPI(Resource):
    def get(self, order_id):
        raise OrderNotExistError(order_id)


api.add_resource(OrderAPI, '/orders/<int:order_id>', endpoint='order')


@app.route("/o/<int:order_id>")
def get_order(order_id):
    raise OrderNotExistError(order_id)


if __name__ == '__main__':
    app.debug = True
    app.run()
Run Code Online (Sandbox Code Playgroud)

在 …

python flask gunicorn flask-restful

5
推荐指数
1
解决办法
984
查看次数

标签 统计

flask ×1

flask-restful ×1

gunicorn ×1

python ×1