将URL模式映射到WSGIApplication中的单个RequestHandler

时间:2009-06-18 02:05:23

标签: python google-app-engine

是否可以将URL模式(正则表达式或其他映射)映射到单个RequestHandler?如果是这样我怎么能做到这一点?

理想情况下,我想做这样的事情:

application=WSGIApplication([('/*',MyRequestHandler),])

以便MyRequestHandler处理所有请求。请注意,我正在开发一个概念证明应用程序,根据定义,我不会知道将要访问域的所有URL。另请注意,如果重要的话,我会在Google App Engine上执行此操作。

2 个答案:

答案 0 :(得分:8)

您描述的模式可以正常工作。此外,您指定的正则表达式中的任何组都将作为参数传递给处理程序方法(get,post等)。例如:

class MyRequestHandler(webapp.RequestHandler):
  def get(self, date, id):
    # Do stuff. Note that date and id are both strings, even if the groups are numeric.

application = WSGIApplication([('/(\d{4}-\d{2}-\d{2})/(\d+)', MyRequestHandler)])

在上面的例子中,两个组(日期和一个id)被分解并作为参数传递给你的处理函数。

答案 1 :(得分:1)

application=WSGIApplication([(r'.*',MyRequestHandler),])

了解更多信息,请参阅the AppEngine docs