У меня есть следующий маршрут в моем urls.py
:Django URL десериализации вопрос
url(r'^tag/(?P<tag>[-\w]+)/$', render_search, name="search_by_tag"),
Итак, я прохожу тег туда и получить результат, например /tag/python/
, /tag/django/
Но он терпит неудачу, когда я прохожу там что-то вроде /tag/C++/
, и он даже терпит неудачу, когда я передаю закодированное значение: /tag/C%2B%2B/
Как я могу исправить это и принять закодированные значения на внутреннем сервере?
Не могли бы вы немного объяснить, почему это регулярное выражение не очень хорошая идея? – Vladimir
Прежде всего - они будут выглядеть уродливыми. Некоторые символы будут закодированы браузерами, некоторые из них будут кодироваться на вашем сайте, и это будет выглядеть не очень хорошо. Во-вторых - в некоторых браузерах могут быть некоторые проблемы, а третья причина - когда кто-то скопирует этот URL-адрес и вставляет его где-нибудь - этот ввод может запретить некоторые символы в URL-адресе. Это просто хорошая конвенция, чтобы поместить внутри url только некоторые символы. – GwynBleidD