Как я могу получить процент закодированных слэшей с 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 заменяются на ****
(или все, что вы хотите использовать).