在WSGI应用中将URL模式映射到单个请求处理器

3 投票
2 回答
3098 浏览
提问于 2025-04-15 12:19

有没有办法把一个网址的格式(比如正则表达式或者其他方式)映射到一个请求处理器上?如果可以的话,我该怎么做呢?

我希望能像这样做:

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

这样的话,MyRequestHandler 就可以处理所有的请求。需要注意的是,我正在做一个概念验证的应用,所以我并不知道会有哪些网址会访问这个域名。另外,我是在 Google App Engine 上进行这个操作,不知道这是否重要。

2 个回答

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
application=WSGIApplication([(r'.*',MyRequestHandler),])

想了解更多内容,可以查看AppEngine的文档

撰写回答