4

メインアプリに次のコードがあります。最初の 2 つを除くすべてのパスは、最後のルート (/.*) によってキャッチされることを期待しています。しかし、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 テンプレート docsによると、これでうまくいくはずです。

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

MainPage.get追加の引数を受け入れるには、次のようにメソッドを定義する必要がある場合があります。

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