【问题标题】:webapp2 Route to match all other pathswebapp2 路由以匹配所有其他路径
【发布时间】:2013-09-24 11:16:41
【问题描述】:

我的主应用程序中有以下代码。我希望除前两条路径之外的所有路径都被最后一条路径 (/.*) 捕获。但我收到 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 函数中包含一个命名参数.这是唯一的方法还是我错过了什么?谢谢。

【问题讨论】:

    标签: routes webapp2


    【解决方案1】:

    根据URI template docs,这应该可以解决问题:

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

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

    def get(self, *args, **kwargs):
    

    【讨论】:

    • 是的,看来这是唯一的方法 - 添加额外的参数来获取。如 def get(self, param1) 或 def get(self, *arg, **kwargs)。
    猜你喜欢
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    相关资源
    最近更新 更多