- 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, on va ajouter des chemins d'URL pour trois articles que j'ai créés au préalable.Ce sont tout simplement des fichiers HTML basiques qui contiennent comme titre article01 et ici un tag h1 avec article01.
00:00:14 :Et pareil pour l'article2 et l'article3 avec à chaque fois le numéro qui change.Tous ces templates, je les ai mis à l'intérieur de mon dossier blog et on va créer des chemins d'URL pour afficher ces différents articles.
00:00:27 :Donc là peut-être que vous êtes tenté de faire quelque chose de ce genre, c'est-à-dire que dans les vues, vous allez vouloir créer une vue pour chaque articleet dans les URL, vous allez créer trois URL qui vont renvoyer vers chacune des vues qui vont elles renvoyer vers chacun des articles.
00:00:41 :Donc je vais vous montrer ce que ça donne avec cette façon de faire et comment on peut l'améliorer directement avec les URL.Donc ici on a trois vues, une vue pour article01, article02 et article03 qui à chaque fois renvoient le bon template HTML en fonction de la vue.
00:00:57 :Ensuite dans les URL ici, je peux importer ces trois vues, donc importer article01, article02 et article03.Et ensuite dans mes chemins ici, je pourrais très bien créer des chemins pour chacune de ces vues.
00:01:11 :Donc avec article01 qui pointe vers la vue article01, article02 vers article02 et article03 vers article03.Donc là normalement on a toutes les briques qui sont en place, on a les chemins d'URL qui renvoient vers les vues, qui renvoient vers les templates.
00:01:35 :Je vais essayer avec article02, on a bien article02 et avec article03 ça marche également.Sauf que là c'est pas très efficace, vous voyez qu'on a à chaque fois besoin de faire des chemins différents qui renvoient vers des vues différentes.
00:02:13 :Alors pour l'instant ici on a mis 01 en dur dans l'URL, donc on va changer ça.Juste avant je vais enlever les imports qui bug ici et à la place je vais importer ma vue article.
00:02:41 :On pourrait indiquer par exemple qu'on veut récupérer un nombre avec int ou une chaîne de caractère avec string.Dans ce cas-ci vu que nos articles sont nommés 01, 02 et 03, on ne va pas récupérer un nombre mais une chaîne de caractère directementparce que si on mettait un nombre on pourrait récupérer par exemple 1, 2 ou 3 mais on n'aurait pas le 0 avant.
00:02:59 :Donc là dans ce cas-ci je vais récupérer une chaîne de caractère et je vais donner un nom à cette chaîne de caractère.Donc je vais l'appeler par exemple numéro article et je referme ici avec le symbole plus grand que.
00:03:18 :Donc le nom numéro article je vais retourner dans ma vue pour l'insérer dans les paramètres de ma fonction article ici.Donc après request je mets une virgule et je mets numéro article.
00:03:38 :Donc je vais ouvrir le terminal pour vous montrer ce que ça donne.Je vais me rendre ici dans mon navigateur et à la place de 03 je vais mettre 01, je valide, je reviens ici et là on a bien 01 qui est affiché.
00:04:00 :Donc article- ça c'est toujours statique mais après là on a quelque chose de dynamique qui va être récupéré.Donc là j'ai mis 01 mais je pourrais mettre n'importe quoi c'est à dire que ici je pourrais mettre Patrick, notre cher Patrick, je valide.
00:04:20 :Donc là c'est une façon comme vous le voyez de récupérer ce qui est passé dans nos URL.Également comme je vous avais dit on pourrait mettre int à la place pour récupérer directement un nombre puisque actuellement on retourne une chaîne de caractère.
00:04:32 :Donc là si je mets int à la place que je reviens sur mon site là actuellement on va avoir une erreur.Alors pourquoi ? Et bien tout simplement parce que notre adresse n'est plus valide.
00:04:58 :Et là ça n'a pas marché parce qu'on a mis une chaîne de caractère.Si par contre je mets un nombre si je mets 1 par exemple là ça fonctionne puisque on a bien mis le type de données qui était attendu par Django dans notre URL.
00:05:09 :Si je mets n'importe quoi donc par exemple 500 pareil ça fonctionne.Si je mets 01 également ça fonctionne parce que Django va être capable de comprendre que 01 c'est un nombre.
00:05:27 :Donc vous voyez ici que dans notre URL ça c'est très important vous pouvez spécifier différents types.Nous on va rester sur un type string qui va nous permettre de spécifier 01, 02 ou 03 et ensuite d'afficher le bon article en fonction de ce qu'on a passé dans l'URL.
00:05:42 :Donc pour l'instant on retourne toujours 01 ici mais on va pouvoir concaténer ce numéro d'article ici dans le template qui est retourné.Donc là je vais enlever mon print et plutôt que de retourner à chaque fois 01 ici on va utiliser un f-string pour retourner le numéro de l'article correspondant à ce que l'on a rentré dans l'URL.
00:06:08 :Donc les f-strings nous permettent d'insérer des variables à l'intérieur de notre chaîne de caractère.Donc là on insère ce qu'on a récupéré dans notre URL dans le template qu'on veut retourner.
00:06:35 :Donc ce qui nous est indiqué ici par l'erreur template does not exist.Donc là vous voyez qu'on a quelque chose de dynamique c'est à dire qu'on a plusieurs articles, plusieurs fichiers HTML, on a une seule vue et grâce aux URL et grâce à cette façon de spécifier à l'intérieur des URL des endroits qui vont être dynamiques, qui vont varier, qu'on peut ensuite récupérer dans nos fonctions, vous voyez qu'on a une logique qui est beaucoup plus habile, beaucoup plus versatile.
00:07:41 :Donc si le numéro de l'article est compris dans cette liste, on va retourner l'article correspondant.Sinon qu'est ce qu'on va faire et bien on va retourner la vue qui nous dit que l'article n'a pas été trouvé.
00:07:51 :Donc là je vais retourner un render sauf qu'à la place de retourner le numéro de l'article ici je vais mettre article not found.Donc si dans l'URL on passe 01, 02 ou 03 on retourne l'article en question et si ce n'est ni 01, ni 02, ni 03 on retourne l'article not found.
00:08:09 :Je teste ça ici avec article 04, je valide avec entrer ici pour rafraîchir la page et on a bien l'article n'existe pas.Donc là on peut rentrer n'importe quoi ici, on peut mettre 10, on aura toujours l'article n'existe pas.
00:08:20 :Si je mets 01 par contre, 02 ou 03 là l'article en question est bien trouvé.Donc voilà pour la logique derrière tout ça, on peut aller beaucoup plus loin bien entendu.
00:08:31 :Là vous remarquez qu'on a quand même créé des fichiers html pour chaque article, dans la réalité on ne ferait pas ça.Ce qu'on ferait c'est qu'on aurait un fichier article.html et à l'intérieur de cette vue on irait récupérer en fonction du numéro de l'article
00:08:45 :dans notre base de données les informations pour l'article correspondant et toutes ces informations on les passerait au contexte de notre vue.C'est ce contexte qu'on avait vu qui nous permet de passer des informations ici directement dans la fonction renderet à l'intérieur de notre fichier article.html on pourrait afficher les différents articles en fonction des données qu'on a récupérées dans notre vue.
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.