谷歌应用引擎webapp WSGIApplication中hexdigest的正则表达式匹配

时间:2010-01-05 08:05:40

标签: python regex google-app-engine web-applications

application = webapp.WSGIApplication(
    [(r'/main/profile/([a-f0-9]{40})', ProfileHandler)],
    debug=True)

上述参数中的正则表达式无法识别Google App Engine中的40 hex hex hexdigest。

我正在获取404而不是ProfileHandler传递匹配的40 hex长配置文件ID。我的app.yaml将所有/main/.*传递给正确的python脚本,所以这不是问题。正则表达式看起来很健全resembles the example regex in GAE docs。这个正则表达式出了什么问题?

2 个答案:

答案 0 :(得分:2)

我无法重现你的问题。这是我的确切代码:

index.py

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class ProfileHandler(webapp.RequestHandler): 
    def get(self, *ar, **kw):
        self.response.out.write("PROFILE IS:" + ar[0])

run_wsgi_app(webapp.WSGIApplication(
[(r'/main/profile/([a-f0-9]{40})', ProfileHandler),],
                                 debug=True))

的app.yaml

application: someapp
version: 1
runtime: python
api_version: 1

handlers:
- url: /main/.*
  script: index.py

应用程序正在侦听端口8082

GET: http://localhost:8082/main/profile/4c4f630aef49c0065c22eb3dd35a00f5787f4816
RESPONSE: PROFILE IS:4c4f630aef49c0065c22eb3dd35a00f5787f4816

答案 1 :(得分:0)

我没有使用Google App Engine的经验,但是:

  • 如果您将([a-f0-9]{40})更改为([a-fA-F0-9]{40})
  • 会发生什么情况
  • 您确定使用了群组$1而不是整个匹配(包括/main/profile/)?