我正在使用Django和谷歌的App Engine。
我想用百分比编码的斜杠向服务器发送信息。像http:/localhost/turtle/waxy%2Fsmooth
这样的请求会与r'^/turtle/(?P<type>([A-Za-z]|%2F)+)$'
之类的网址匹配。请求完整地到达服务器,但在与正则表达式进行比较之前的某个时间,%2F将转换为正斜杠。
如何阻止%2F转换为正斜杠?谢谢!
答案 0 :(得分:3)
os.environ['PATH_INFO']
已解码,因此您丢失了该信息。可能os.environ['REQUEST_URI']
可用,如果可用,则不会解码。 Django只读取PATH_INFO。你可能会做类似的事情:
request_uri = environ['REQUEST_URI']
request_uri = re.sub(r'%2f', '****', request_uri, re.I)
environ['PATH_INFO'] = urllib.unquote(request_uri)
然后,所有%2f的情况都被****
(或您想要使用的任何内容)替换。