Как я могу получать косые черты в процентах с помощью Django в App Engine? - PullRequest
10 голосов
/ 15 июня 2010

Я использую Django с Google App Engine.

Я хочу отправить информацию на сервер с косыми чертами в процентах.Запрос типа http:/localhost/turtle/waxy%2Fsmooth, который будет соответствовать URL-адресу типа r'^/turtle/(?P<type>([A-Za-z]|%2F)+)$'.Запрос поступает на сервер без изменений, но когда-нибудь перед его сравнением с регулярным выражением% 2F преобразуется в прямую косую черту.

Что можно сделать, чтобы предотвратить преобразование% 2F в прямую косую черту?Спасибо!

1 Ответ

3 голосов
/ 15 июня 2010

os.environ['PATH_INFO'] декодируется, поэтому вы теряете эту информацию.Возможно, os.environ['REQUEST_URI'] доступно, и если оно доступно, оно не декодируется.Джанго читает только 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 будут заменены на **** (или что вы хотите использовать).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...