2012-05-03 26 views
-1

我正在尝试使用Google App Engine获取处理程序映射。webapp处理程序中的百分比编码不一致

的正则表达式是这样的:

('/api/1/apps/([-0-9a-zA-Z]+)/values/(.+)', ApiValueHandler) 

当URL看起来像/api/1/apps/50b96eb0/values/New%20note%2Fhello得到数据传递给我的处理程序的值是New%20note/hello。正如你所看到的,它正在消除斜线,而不是空间。

是否有一个我在某处丢失的设置,还是我需要做一些自我修复?如果有一些价值,它永远不会unescape有没有这些地方的列表?

更新时间:

这是一个测试应用程序,显示了当开发服务器上的Windows 7与Python 2.5运行此行为。

main.py

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

class MainHandler(webapp.RequestHandler): 
    def get(self, blah): 
     self.response.out.write(blah) 

app = webapp.WSGIApplication([('/(.*)', MainHandler)], debug=True) 
util.run_wsgi_app(app) 

的app.yaml

application: engineapp 
version: 1 
runtime: python 
api_version: 1 

handlers: 
- url: .* 
    script: main.py 
+0

向我们展示你的代码;我刚刚在一个示例应用程序中尝试过这种情况,并且正在进行的操作没有任何问题。 – systempuntoout

+0

@systempuntoout我已经为这个问题添加了代码。 – alnorth29

回答

1

使用urllib.unquote反转义的字符串。

Example

+0

这样做是否会冒双倍的风险,而这些风险在传递给处理程序时已经被忽略了? – alnorth29