2017-10-03 3 views
4

Je rencontre un problème avec les modèles d'URL Django. Lorsque j'ajoute un '/' à la fin de l'URL de l'index, la page renvoie une erreur 404 (Page introuvable) et si je supprime le '/' de la fin de l'URL, la page fonctionne correctement.

Le problème n'est pas reproductible avec l'URL de la page d'administration, quelqu'un peut-il expliquer ce qui se passe?

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^$/',index), 
] 

Répondre

4

$: Représentent end de chaîne, donc, il n'y a pas pour posibility char vivant après.

correspond à la fin de la chaîne ou juste avant le saut de ligne à la fin de la chaîne

^ correspond au début de la chaîne ainsi, ^$ dans la racine urls.py signifie à Django: Je don Je ne veux rien dans mon URL, sauf le nom de domaine/base alors Django redirigera la requête vers votre page d'index.

2

url méthode de django.conf.urls package accepte regex comme premier paramètre

$ représentent fin de chaîne dans l'expression régulière donc tout ombles après qui ne sera pas considéré comme chaîne de correspondance url.

-1

aucun caractère après $ seront pris en compte dans le modèle d'URL changer donc ceci:

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^/$',index), 
] 
0

Comme je l'ai compris, dans django urls:

'$': Fin de la chaîne , ceci est l'utilisation dans la regex

'^': Il est également utilisé dans l'expression régulière est correspondant au début de l'URL