2015-06-04 57 views
-1

我想将默认404代码(当烧瓶未找到路径时)更改为其他代码。我怎样才能做到这一点?烧瓶自定义“找不到”代码

+0

是否要更改在404上显示的页面(或其消息)? –

+1

你为什么要将404更改为其他代码?如果你想使用一些更具体的代码,比如410(Gone),你只能在一些路由中使用它,并且只能在文档被删除的时候使用它。 – Pyfisch

+0

我正在制作特定的api,404未找到对象时使用,502将在没有找到路由时使用 – novox

回答

3

如前所述,重新定义标准状态代码的含义通常不是一个好主意。

虽然可以更改返回一个状态码,这里有一个例子:

from flask import Flask 

app = Flask(__name__) 

@app.route('/') 
def hello_world(): 
    return 'Hello World!' 

@app.errorhandler(404) 
def page_not_found(error): 
    return 'This page does not exist', 777 

if __name__ == '__main__': 
    app.run() 

这会比其他/任何页面上返回状态代码777。

这里有一个结果:

777 status code

更多关于你可以找到here的话题。

+0

但是如果我在代码@app.errorhandler(404)中放弃(404)将会处理它,然后我将得到777而不是404 – novox

+2

@novox,这就是你刚才所要求的。 – davidism

+1

@novox我认为您可以使用我发布的内容将404代码更改为其他内容。对于你的404_你可以自定义异常(参见[这里](http://werkzeug.pocoo.org/docs/0.10/exceptions/#custom-errors)和[here](http://flask.pocoo。 org/docs/0.10/patterns/apierrors /)),然后处理它返回404状态。你不能使用'abort(404)',至少不修改瓶子本身。您将不得不'提高YourCustomFourOFour(...)'异常,而不是'abort(404)'。 – kishkin