У меня есть простое приложение Django, в котором я хочу поймать полный URL и получить от него некоторую информацию. URL будет иметь следующую форму: < /p>
ourdomain.com/2/abc:AB$12345$AB12345678_01.xyz/abc/1000,1000/1/a.xyz
< /code>
Итак, в моем urls.py я поймаю URL, как это: < /p>
path("
", views.index, name='the_endpoint'),
< /code>
В моих модульных тестах все работает безупречно. Затем я проверил это вручную, сделав звонок и распечатав URL, который я получаю в представлении: < /p>
def index(request, the_url):
print(the_url)
return HttpResponse("Some response", status=200)
< /code>
Но тогда я напечатаю это в терминале: < /p>
2/abc:AB2345.xyz/abc/1000,1000/1/a.xyz
< /code>
вместо ожидаемого: < /p>
2/abc:AB$12345$AB12345678_01.xyz/abc/1000,1000/1/a.xyz
< /code>
Я удалил знаки доллара из URL -адреса запроса, а затем я получаю URL, который ожидаю. Таким образом, знаки доллара являются источником неприятностей. Я не уверен, как я могу это исправить.class SimpleMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
print(request.get_full_path())
print(request.get_full_path_info())
print(request.get_raw_uri())
print(request.build_absolute_uri())
response = self.get_response(request)
return response
< /code>
В нем я проверяю, могу ли я получить необработанный URL, прежде чем он попадет в другие средние войны самого представления. К сожалению, он также печатает измененные файлы: < /p>
/2/abc:edepot:AB2345.xyz/abc/1000,1000/1/a.xyz
/2/abc:AB2345.xyz/abc/1000,1000/1/a.xyz
http://localhost:8000/2/abc:AB2345.xyz/ ... 00/1/a.xyz
http://localhost:8000/2/abc:AB2345.xyz/ ... 00/1/a.xyz
< /code>
Так что я думаю, что URL меняется ранее где -то в Джанго. Где это может быть?
Подробнее здесь: https://stackoverflow.com/questions/600 ... llar-signs
Как поймать полный URL в Django View, который включает в себя знаки доллара? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение