Ответ 1
Из источника Django urlencode
является в основном оболочкой утилиты Django urlquote
. Из комментариев в источнике, urlquote
является версией urllib.quote
с поддержкой UTF-8.
Итак, urlencode
использует те же значения по умолчанию, что и python urllib.quote
, и причина, по которой urllib.quote
не работает, слэши можно найти в документации :
Замените специальные символы в строке, используя escape-последовательность% xx. Буквы, цифры, а символы "_.-" никогда не цитируются. По умолчанию это функция предназначена для цитирования раздела пути URL. необязательный безопасный параметр указывает дополнительные символы, которые должны не указывается - его значением по умолчанию является '/'.
Итак, причина в том, что он ускользает от пути, а '/'
- вполне ожидаемый и допустимый символ в пути.