Dalla sorgente Django, urlencode
è fondamentalmente un involucro attorno al metodo di utilità urlquote
di Django. Dai commenti nella fonte, urlquote
è una versione UTF-8-safe di urllib.quote
.
Così urlencode
utilizza lo stesso default come pitone di urllib.quote
, e il motivo che urllib.quote
non sfugge barre può essere trovato nel documentation:
Sostituire i caratteri speciali nella stringa utilizzando la fuga% xx. Le lettere, cifre e i caratteri "_.-" non vengono mai citati. Per impostazione predefinita, questa funzione è intesa per la citazione della sezione percorso dell'URL. Il parametro di sicurezza opzionale specifica caratteri aggiuntivi che non dovrebbero essere quotati - il suo valore predefinito è '/'.
Quindi, il motivo è che sta sfuggendo al percorso e '/'
è un carattere perfettamente previsto e valido all'interno di un percorso.
Vediamo alcuni casi d'uso! –
Leggi questo http://stackoverflow.com/questions/1957115/is-a-slash-equivalent-to-an-encoded-slash-2f-in-the-path-portion-of-a – catherine