Tornado is mentioned in the documentation, but this can only catch errors in the path requests listed in handlers.
If you only define a rule (r "/hello", Hellohandler), you can only capture/hello/other, such as undefined path requests, like/he,/helloworld,/he/ Other such will directly display the Tornado default 404 error page without displaying the custom error page.
The workaround is simply to add one (r ". *", Basehandler) at the end of the routing rule to capture all requests not captured by other rules, overwrite the Get method, and invoke the custom Write_error method in the method. Cases:
The code is as follows:
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))