Могу ли я получить необработанную строку запроса в промежуточном программном обеспечении django? - PullRequest
0 голосов
/ 28 февраля 2012

В частности, мое промежуточное ПО заинтересовано в различении GET-запроса:

  1. / администратор / приложение / модель /?
  2. / администратор / приложение / модель /

URL # 1 был инициирован с висящим вопросительным знаком. Из моих экспериментов, Django's HttpRequest поглощает его, и я не могу различить их. Есть ли способ получить необработанную строку запроса без фильтрации?

Ответы [ 2 ]

1 голос
/ 28 февраля 2012

Это может быть невозможно.Как правило, приложение django обслуживается из-за интерфейса WSGI, к тому времени, как запрос получает к django, он уже анализируется в PATH_INFO (до?) И QUERY_STRING (после?).Когда django запускает get_full_path, он просто объединяет эти две вещи с?в середине, если необходимо.

Это также плохая идея: HTTP не ожидает, что URL ведут себя по-разному с конечным символом?, поскольку это просто означает пустой набор параметров, что аналогично отсутствиюа?средства.Помимо того, что это может привести к путанице, это может вызвать проблемы с совместимостью, так как прокси или веб-браузер могут отбросить конечный символ «?»в ожидании, что это не должно иметь никакого эффекта.

1 голос
/ 28 февраля 2012

? следует экранировать как %3F.Итак, может быть, вам стоит выбрать другой символ, без таких проблем?

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