- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Deviens membre Premium magic_button
Débloque cette session en devenant Membre Premium 🚀
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Dans cette vidéo, je vais vous parler d'une variable d'environnement,la variable appendSlash,et son intérêt dans la résolution des chemins d'URL avec Django.Par défaut, vous voyez quand on a des chemins d'URL ici, qu'on a un slash à la fin du chemin.
00:00:16 :Donc ça, je vous conseille de toujours le laisser,mais vous allez voir que Django, par défaut,a un mécanisme qui permet de rediriger les requêtes qui n'ont pas le slashvers les requêtes qui contiennent le slash à la fin du chemin d'URL.
00:00:29 :Ce paramètre, c'est un paramètre qui s'appelle appendSlashet qui, par défaut, est égal à true.Alors, il n'est pas dans le fichier settings.py,il est défini globalement au niveau de votre projet,mais on peut, si on le souhaite, le désactiver,donc en le mettant à false, en rajoutant cette valeur dans notre fichier de settings.
00:00:48 :Je vais vous montrer tout d'abord ce que ça donne avec le comportement par défaut,donc avec appendSlash qui est égal à true.Donc là, ça reviendrait au même de ne pas mettre la ligne ou de la mettreavec cette valeur par défaut,mais par la suite, vous allez voir qu'on va tester avec une valeur de false.
00:01:01 :Donc là, j'ai tout simplement une vue de test qui renvoie un titreet cette vue, j'y accède avec l'URL test slash.Donc si je lance le serveur de développement et que je vais sur mon site,donc au 127.0.0.1.8000,
00:01:16 :là, pour l'instant, sur la page d'accueil, je n'ai rien,mais si je me rends sur slash test,vous allez voir que la vue va être automatiquement redirigée.
00:01:24 :Alors pour ça, je vais faire un clic droitet je vais cliquer sur inspect ici pour ouvrir les outils de Google Chromeet notamment l'onglet network ici qui va nous permettre de voir les requêtesqui sont effectuées par le navigateur.
00:01:36 :Donc en premier lieu, je me dirige sur slash testet je ne mets pas le slash à la fin de l'URL.J'appuie sur entrée et là, vous voyez qu'on n'a pas une, mais deux requêtes.
00:01:46 :On a une première requête, donc la requête qu'on a effectuée,slash test, qui a un statut de 301.301, c'est en fait une redirection, ce qui est indiqué ici,document redirect, et ça nous a en fait redirigé vers la page test slash.
00:01:59 :Et donc cette page test slash,elle nous retourne bien la vue qu'on avait définie dans le fichier d'URL.Donc vous voyez ici qu'avec append slash qui est défini à true,on a cette redirection depuis le chemin test sans le slashqui s'effectue vers le chemin test avec le slash.
00:02:17 :Si par contre on change cette variable ici, qu'on la met à false,et alors là quand on change les settings,généralement il est conseillé de relancer le serveur,donc je l'ai arrêté et je vais le relancer.
00:02:28 :Donc maintenant avec append slash qui est égal à false,on ne va pas avoir cette redirection automatique.Donc si j'enlève le slash et que je retourne sur slash test sans mettre de slash à la fin,là vous voyez que cette fois-ci on a une erreur 404.
00:02:41 :Et si on regarde ici, on a une seule requête avec un statut 404.Donc avec append slash qui est égal à false,cette redirection ne s'effectue pas.
00:02:50 :Si par contre moi je rajoute le slash à la fin du chemin,là je tombe logiquement sur ma vue qui correspond au chemin d'URL qu'on a défini ici.
00:02:58 :Donc voilà pour cette petite précision.Dans les chemins d'URL, moi je vous conseille de toujours mettre le slash à la fin,mais sachez que donc par défaut avec append slash qui est égal à true,donc ça c'est vraiment le comportement par défaut,vous n'avez même pas besoin de le spécifier dans le fichier de settings.
00:03:14 :Si vous ne mettez rien par défaut, c'est à true.Et bien dans vos fichiers d'URL, même si vous mettez une URL avec ou sans,en fait à chaque fois, ça va rediriger de toute façon vers le chemin avec le slash après.
00:03:26 :Donc si vous avez ce chemin sans le slash, et bien il va le trouver tout de suite.Si vous avez le chemin avec le slash et que vous faites une requête vers test sans le slash,et bien automatiquement ça sera redirigé vers cette vue.
00:03:36 :Donc vous n'avez pas où vous en faire.Moi je vous conseille de toujours mettre le slash à la fin ici,comme ça vous avez une uniformité.
00:03:42 :Et de toute façon avec ce paramètre Django va retomber sur ses pieds à chaque foispour vous retourner la vue avec le slash à la fin.
00:03:50 :Donc en général, je ne vous conseille pas de modifier cette valeur,donc la valeur de append slash.Laissez-la comme elle est par défaut,mais il me semblait important de vous montrer ce petit mécanisme qui s'opère avec la redirectionet ainsi de vous expliquer pourquoi on a toujours le slash qui est présent ici à la fin de nos chemins d'URL.
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.