我以这种方式管理“真正的”404错误:
application = webapp.WSGIApplication([
('/', MainPage),
#Some others urls
('/.*',Trow404) #I got the 404 page
],debug=False)
但在我的代码的某些部分,我抛出了404错误
self.error(404)
我希望显示之前提到的同一页面,¿有什么方法可以捕获404错误并进行管理吗?
我可以重定向到一些不存在的网址,但看起来很难看
答案 0 :(得分:9)
最简单的方法是覆盖基本处理程序上的error()方法(假设你有一个)来生成404页面,并从常规处理程序和404处理程序调用它。例如:
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)
答案 1 :(得分:0)
小猪支持Derek Dahmer的答案(我没有留下评论的业力),你可以将其添加到Throw404以发送正确的标题:
class Throw404(webapp.RequestHandler):
def get(self):
self.error(404)
# your 404 handler goes here