如果只定義了(r"/hello", HelloHandler) 一條規則,那么只能捕獲到 /hello/other,這樣的未定義路徑請求,而像/he、/helloworld、/he/other這樣的會直接顯示Tornado默認的404錯誤頁面,而不會顯示自定義的錯誤頁面。
解決方法很簡單只需要在路由規則的最后加一條(r".*", BaseHandler),用于捕獲未被其他規則捕獲的所有請求,然后覆寫get方法,并在方法中調用自定義的write_error方法。 例:
代碼如下:
class BaseHandler(tornado.web.RequestHandler):
def get(self):
self.write_error(404)
def write_error(self, status_code, **kwargs):
if status_code == 404:
self.render('public/404.html')
elif status_code == 500:
self.render('public/500.html')
else:
self.write('error:' + str(status_code))
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com