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。这个正则表达式出了什么问题?
答案 0 :(得分:2)
我无法重现你的问题。这是我的确切代码:
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))
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/
)?