Flask错误与Web服务错误

时间:2015-07-20 00:25:48

标签: python rest flask flask-restful

我正在阅读Miguel Grinberg撰写的Flask Web开发书籍的RESTful Web服务章节,他提到Flask可以自己生成错误,也可以由Web服务明确生成错误。

对于Flask生成的错误,他使用如下错误处理程序:

@main.app_errorhandler(404)
def page_not_found(e):
    if request.accept mimetypes.accept_json and \
            not request.accept_mimetypes.accept_html:
        response = jsonify({'error': 'not found'})
        response.status_code = 404
        return response
     return render_template('404.html'), 404

虽然Web服务生成错误,但没有错误处理程序:

def forbidden(message):
    response = jsonify({'error': 'forbidden', 'message': message})
    response.status_code = 403
    return response

我真的不明白烧瓶生成错误与Web服务生成错误之间的区别。

1 个答案:

答案 0 :(得分:0)

第一个是如何为Flask引发的错误制作自定义处理程序的示例。例如,如果它无法识别路径,则会使用默认的“未找到”消息引发404错误。自定义处理程序允许您仍然返回404错误,而是使用您自己的,更好看的响应。

第二个是如何更改响应代码的示例,而不处理先前引发的错误。在此示例中,如果用户没有权限,您可能会从另一个视图return forbidden()。响应将有一个403代码,您的前端将知道如何处理。