Как я могу получить процент закодированных слэшей с Django на App Engine?

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

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

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

Ответ 1

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 заменяются на **** (или все, что вы хотите использовать).