I manage the "real" 404 errors in this way:
application = webapp.WSGIApplication([
('/', MainPage),
#Some others urls
('/.*',Trow404) #I got the 404 page
],debug=False)
But in some parts of my code i throw a 404 error
self.error(404)
and i wanna show the same page that mentioned before, ¿there is any way to catch the 404 error and manage it?
I can redirect to some inexistent url, but looks ugly
The easiest way to do this is to override the error() method on your base handler (presuming you have one) to generate the 404 page, and call that from your regular handlers and your 404 handler. For example:
class BaseHandler(webapp.RequestHandler):
def error(self, code):
super(BaseHandler, self).error(code)
if code == 404:
# Output 404 page
class MyHandler(BaseHandler):
def get(self, some_id):
some_obj = SomeModel.get_by_id(some_id)
if not some_obj:
self.error(404)
return
# ...
class Error404Handler(BaseHandler):
def get(self):
self.error(404)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With