Я использую Django с Механизмом Приложения Google.
Я хочу отправить, информация к серверу с процентом закодировала наклонные черты. Запрос как http:/localhost/turtle/waxy%2Fsmooth
это соответствовало бы против URL как r'^/turtle/(?P<type>([A-Za-z]|%2F)+)$'
. Запрос добирается до неповрежденного сервера, но когда-то прежде чем он будет сравнен с regex, %2F преобразовывается в наклонную черту вправо.
Что я могу сделать, чтобы мешать %2Fs быть преобразованным в наклонные черты вправо?Спасибо!
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 заменяются на ****
(или что угодно, что вы хотите использовать).