2011-05-30 4 views
2

Dans la documentation django, ils ont écrit que dans les URL, il est seulement possible d'utiliser des caractères ASCII. Cela me semble étrange à cause des personnages qui sont dans les domaines IDN. Par exemple, si j'ai un domaine IDN et que je veux avoir non seulement des caractères ASCII dans les URLs, il est vraiment impossible par défaut de le faire facilement?Simple question sur les caractères dans les URLs django

Répondre

1

Oui, mais alors quoi. Python prend en charge Punycode nativement.

>>> 'xn--' + u'たとえば'.encode('punycode') + '.com' 
'xn--r8j2b1a7a.com' 
+0

Alors, que faire si c'est impossible? Je ne suis pas expert mais je pense que si la réponse est vraie, il y a du travail à faire pour les créateurs et les développeurs de django s'ils veulent continuer à penser à django comme un framework convivial dans l'esprit des utilisateurs. – krzyhub

+0

Si vous pouvez identifier des problèmes spécifiques avec Django, alors je suis sûr que les développeurs seraient très intéressés à en entendre parler. –

+0

Je ne vois pas de problèmes maintenant mais seulement des possibilités. – krzyhub

1

Une solution simple consiste à demander à Django de faire correspondre l'URL en tant que '.' regexp chaîne brute, car elle ne comprend pas '\ w' pour désigner votre jeu de caractères UTF-8, etc.

Ainsi, dans urls.py, vous pouvez écrire 'foo/bar /.+' au lieu de 'foo/bar/\ w + 'qui est exclusif pour les anglophones, pour ainsi dire. C'est juste une plaisanterie.

Goodluck.