4

我的主应用程序中有以下代码。我希望除前两条路径之外的所有路径都被最后一条路径 (/.*) 捕获。但我收到 404 错误。我错过了什么?

  import webapp2
  from webapp2 import WSGIApplication, Route

  # ---- main handler
  class MainPage(webapp2.RequestHandler):
    def get(self):
      ret = jinja2render.DoRender(self)
      return ret

  routes = [
    Route (r'/rpc', handler = 'rpc.RPCHandler'),
    Route (r'/secured/somesecuredpage', handler = 'secured.securedPageHandler'),
    Route (r'/.*', handler = MainPage),
  ]

  app = WSGIApplication(routes, debug=True)

我可以将最后一条路由从“/. ”更改为“/<:. >”以捕获所有其他路径,但这也需要我在 MainPage.get 函数中包含一个命名参数。这是唯一的方法还是我错过了什么?谢谢。

4

1 回答 1

8

根据URI 模板文档,这应该可以解决问题:

Route (r'/<:.*>', handler=MainPage)

您可能需要MainPage.get按如下方式定义您的方法以接受额外的参数:

def get(self, *args, **kwargs):
于 2013-09-20T04:25:33.613 回答