是否可以将URL模式(正则表达式或其他映射)映射到单个RequestHandler?如果是这样我怎么能做到这一点?
理想情况下,我想做这样的事情:
application=WSGIApplication([('/*',MyRequestHandler),])
以便MyRequestHandler处理所有请求。请注意,我正在开发一个概念证明应用程序,根据定义,我不会知道将要访问域的所有URL。另请注意,如果重要的话,我会在Google App Engine上执行此操作。
答案 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