使用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'
答案 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)