如何在Python Bottle中引发自定义404消息

时间:2013-11-20 02:04:59

标签: python bottle

使用Python的Bottle框架,我试图捕获所有404并用我自己的框架替换框架的输出。

如何捕获所有抛出的404并用我自己的输出替换它们?

到目前为止,我已经将我的应用程序简化为只丢弃404的应用程序,它仍然输出框架的“Error:404 Not Found”输出而不是“Nothing here,抱歉”。我的申请如下。

from bottle import Bottle, error

"""App Instantiation"""
app = application = Bottle()

@error(404)
def error404(error):
    return 'Nothing here, sorry'

2 个答案:

答案 0 :(得分:2)

使用@app.error

from bottle import Bottle

"""App Instantiation"""
app = application = Bottle()

@app.error(404)  # changed from OP
def error404(error):
    return 'Nothing here, sorry'

@error不会将您的error404功能绑定到您的应用。 (我相信它只是将它绑定到Bottle的“默认”应用程序,IMO是一个有点令人困惑和不必要的功能。)

答案 1 :(得分:1)

我正在使用0.12.13版的bottle,并且上面的解决方案对我不起作用(不再有效)。我看着documentation并按照那里的建议进行了解决:

from bottle import route, run
from bottle import error
import webbrowser


webbrowser.open("http://localhost:8080/index")


@route("/index")
def index():
    return "<a href='/test'>Next page</a>"


@error(404)
def error404(error):
    return 'Nothing here, sorry'


run(host='localhost', port=8080)