⌘K
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- groups La communauté
- forum Questions
- live_tv Mentorats
Formations
Articles
Communauté

La certification qualité a été délivrée pour la catégorie d'actions « Actions de formation ».
⌘K
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- groups La communauté
- forum Questions
- live_tv Mentorats
Formations
Articles
Communauté

La certification qualité a été délivrée pour la catégorie d'actions « Actions de formation ».
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 partie, on va faire quelque chose qu'on aurait dû faire il y a bien longtemps,qu'on fait généralement au tout début d'un projet.Mais je ne voulais pas vous embêter avec ça pour le moment,puisque ça fonctionne très bien également en laissant tout à l'intérieur du même fichier.
00:00:12 :Donc ce qu'on va faire, c'est qu'on va en fait séparer les URL,puisque actuellement on a toutes les URL à l'intérieur du même fichier.Et normalement ce qu'on fait, c'est un fichier d'URL par application.
00:00:23 :Donc ce qu'on va faire, c'est séparer ce fichier urls.pyet créer un fichier URL pour l'application storeet un fichier URL pour l'application accounts.Donc on va commencer par accounts, je vais faire un clic droit,new file, et on va créer un fichier urls.py.
00:00:38 :Et à l'intérieur de ce fichier, on va aller donc récupérer certaines des URL,donc les URL qui concernent les vues des comptes,donc les URL pour sign up, logout, login, profile, set default shipping address,donc toutes ces vues là.
00:00:49 :Donc on va prendre en fait à partir d'ici, tout ça ici,je le prends, je le coupe,et on va le mettre à l'intérieur du fichier URLs de l'application accounts.
00:00:58 :Donc à l'intérieur de ce fichier, on va faire un URL patterns,donc c'est bien important qu'il s'appelle exactement comme ceci,URL patterns comme ceci,et ça va être également une liste,et on va tout simplement coller ces URL ici,et on va faire les imports également, puisque là ils ne sont pas faits,
00:01:15 :donc on va copier tout simplement cette lignequi importe toutes les fonctions dont on a besoin,et on va la mettre tout en haut,et on va également importer la fonction pathqui est dans le module django.urls,
00:01:25 :c'est ça django.urls,donc on va également ajouter cet import ici,et là je l'ai coupé, en fait il faut que je le laisse dans ce fichier,puisqu'on va garder quand même quelques URL à l'intérieur de ce fichier.
00:01:35 :On va faire la même chose pour l'application store,donc celle-ci,donc je vais faire un clic droit,new python file,urls.py,on va copier donc toutes ces URL ici,et on va faire la même chose,donc URL patterns,égale, une liste,on colle tout,on va chercher les imports,
00:01:54 :donc tous ces imports ici,on va juste garder en fait la fonction index,donc from store.views import index,on laisse celle-ci,et on colle toutes les autres ici dans le fichier urls.py.
00:02:04 :On va également importer donc from django.urls import path.Donc là on a tout séparé comme il faut,maintenant on va devoir inclure ces fichiers dans le fichier principal.
00:02:16 :Donc pour ça ce qu'on va faire c'est utiliser la fonction include,qui se trouve également à l'intérieur de ce module django.urls,donc je mets virgule include,donc je vais effacer toutes ces lignes ici,et ce qu'on va faire c'est indiquer les chemins qui vont mener à ces applications,donc à ces chemins d'URL.
00:02:32 :Alors là on va changer légèrement nos URL,puisque en fait ce que je vais faire c'est rajouter un préfixe,donc par exemple pour les comptes on va mettre account comme ceci,donc sans s juste account,et on va inclure donc avec la fonction include accounts.urls.
00:02:47 :Donc là c'est une chaîne de caractère accounts.urls comme ceci,avec le nom de l'application et le fichier urls comme ceci,et on va faire la même chose pour le store,donc ici je vais mettre boutique,et on va inclure store.urls.
00:03:03 :Donc normalement c'est tout ce qu'on a besoin de faire,on utilise path, et on utilise la fonction include,pour dire qu'on souhaite inclure toutes les URL.
00:03:11 :Donc on va avoir une concaténation entre cette URL ci,et les URL que se trouve ici,donc par exemple pour le login ce sera account.login,
00:03:19 :et comme on a utilisé les noms des URL,ça ne devrait rien changer dans notre application pour l'instant,si je reviens, j'actualise,donc je vais actualiser le site, je suis bien sur la page d'accueil,si je vais voir mon profil, vous voyez que l'adresse a changé,on est sur slash account slash profile,
00:03:33 :au lieu de juste slash profil,tout fonctionne de la même façon,je vais essayer de changer l'adresse par défaut, ça fonctionne également.Donc vous voyez qu'on a rien cassé,puisqu'on utilisait à chaque fois dans tous nos fichiers,les noms des URL et non pas les URL elles-mêmes.
00:03:46 :Ce qu'on va faire par contre,et c'est là où ça va un petit peu casser nos URL,et qu'il va falloir faire du search and replace,c'est utiliser un namespace,donc c'est en fait un nom qui va nous permettrede définir les chemins d'URL,par exemple on pourrait avoir plusieurs applications
00:04:01 :qui ont une URL qui s'appelle product,et donc il faut qu'on puisse distinguer entre ces différentes applications,le nom de l'URL,donc là juste avec product ce n'est pas suffisant,donc ce qu'on va faire c'est rajouter une variablequi s'appelle app-name,et ici on va dire que c'est égal à store,
00:04:17 :donc c'est tout simplement une chaîne de caractère,et ce que ça fait c'est que maintenant pour accéderà cette URL product de cette application,donc de ce fichier d'URL,on va devoir faire store, deux points,et le nom de l'URL,donc product dans ce cas-ci.
00:04:31 :Donc là ça va un petit peu tout briser,puisque comme je vous dis en fait si je revienset que j'essaie d'accéder à mon site,vous voyez que l'URL n'est plus trouvée.
00:04:37 :Donc là en fait il va falloir aller modifier tout ça,donc dans les fichiers de templates,par exemple dans le cartes, même dans le index,en fait vous voyez ce qui posait problème,ici ça doit être une des URLs,alors ça doit être le absolute URL dans ce cas-ci du produit,
00:04:49 :donc get absolute URL,vous voyez on fait un reverse de product,donc en fait là il faut mettre store, deux points, product.Si je reviens sur la page d'accueil,ça devrait avoir réglé ce problème pour la page d'accueil,si je vais par contre sur le panier,voilà ça ne marche pas de la même façon.
00:05:04 :Donc là il faut faire un peu du search and replace,il faut vous assurer que toutes les URLsutilisent ce préfixe,on va faire la même chose pour le accounts,on va mettre app name égale accounts,donc c'est pour ça que je vous disaisque c'est quelque chose que l'on fait généralement au début,
00:05:18 :de séparer ces URLs comme ça,pour ne pas avoir après coup à aller modifiertous les noms des URLs.Là dans ce cas-ci je ne voulais pas vous embêter,donc on a fait ça un petit peu différemment,et le problème c'est que maintenant il faut donc allerdans tous les fichiers HTML et même les fichiers Python,
00:05:31 :comme vous l'avez vu,on peut avoir dans des modèles cette fonction reversequi va chercher une URL à partir du nom de l'URL également.Donc là je vais le faire,pour accélérer un petit peu la vidéo,mais il n'y a pas grand chose à dire autre quealler chercher dans tous ces fichiers ici,
00:05:45 :par exemple vous voyez update quantity,ça va être store,qu'est-ce qu'on a d'autre ?Ici on n'a rien d'autre,ici on a le create checkout,ça va être store également,delete cart, c'est le store,donc je vais faire tout ça,vous pouvez regarder,sinon vous pouvez passer et faire de même de votre côté
00:06:00 :pour avoir des noms d'URL,ou alors sinon vous pouvez juste enlever le app name,et puis ce n'est pas très grave dans ce cas-ci,puisqu'on n'a pas vraiment plein d'applicationsqui ont le même nom,on a juste deux applications,donc ça devrait aller,mais voilà vous pouvez le faire de votre côté aussi.
00:06:12 :Donc add to cart,ça va être store add to cart,dans le index j'ai tout fait,dans le success j'ai tout fait,on va aller voir le fichier de base,dans le fichier de base,alors là on a le account profile,alors là on en a un paquet,le logout,
00:06:27 :le login,le sign up,le index lui il n'a pas bougé,puisqu'il est toujours dans shop URL,donc c'est toujours cette URL ici,et là on n'a pas de nom app name,donc dans le index ça ne change pas,le cart ça va être store cart,donc normalement ça a l'air pas trop mal,
00:06:44 :on va aller voir dans les templates ici,dans adresse,set default shipping address,alors ça c'était dans accounts aussi,donc ça c'est bon,le login,le login on n'a rien,le profil,on n'a rien non plus,le sign up,rien non plus,donc ça devrait être bon,et la dernière chose que je vais faire,
00:07:04 :c'est chercher en fait pour reverse,donc je fais command shift F,et je cherche reverse,parce que reverse c'est quelque chose,comme je vous le disais,qu'on utilise assez régulièrement,donc là vous voyez par exemple,on a le product ici,donc il va être store 2.product,
00:07:17 :là pareil,checkout,ça va être store 2.checkout success,et store 2.cart,là aussi,alors ça on vient de le remplacer,store product c'est bon,donc voilà normalement tout est bon,je vais aller retourner ici,actualiser,ça semble bon,profil,si je change ici,sauvegarder,alors là vous voyez,profile il n'est pas trouvé,
00:07:41 :donc on va juste faire une recherche de profil,et on va chercher,voilà,redirect,c'est ici,ah oui puisqu'il y a aussi les redirects,il y avait les reverse,et il y a aussi les redirects,donc on va les rajouter aussi,on va chercher redirect,index c'est bon,cart ça va être le store,
00:08:01 :index c'est bon,index, index, index, profil,account,2 points,et voilà,normalement tout est bon,j'actualise,ça fonctionne,je change l'adresse par défaut,ça fonctionne,j'ajoute un truc dans le panier,ça fonctionne,ajouter dans le panier,voilà,je change la quantité,non,alors là,j'ai mal écrit tout simplement,
00:08:26 :voilà,store,comme ceci,hop,voilà,mettre à jour les quantités,c'est bon,supprimer l'article,supprimer le panier,tout ça c'est bon,donc ça semble bon,donc voilà,c'était juste une petite partie de plaisir d'aller changer tout ça,mais voilà,normalement on n'a pas vraiment besoin de changer les URL comme ceci,
00:08:47 :si vous faites cette séparation dès le début,et que par la suite vous vous assurez de ne pas modifier ces choses là,et de ne pas changer les namespace,normalement vous n'avez pas besoin de changer tout ça,donc voilà pour la séparation des différents fichiers d'URL,avec deux fichiers que l'on peut inclure grâce à cette fonction include.