- 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
- science Projets mensuels
Formations
Articles
Communauté

La certification qualité a été délivrée pour la catégorie d'actions « Actions de formation ».
- 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
- science Projets mensuels
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 voir comment filtrer les éléments à l'intérieur de notre base de données.Pour ce faire, j'ai créé plusieurs articles ici, avec un peu plus d'informations que ce qu'on avait auparavant.
00:00:11 :Vous remarquez également que l'ID ici commence à 3, donc une fois qu'on a supprimé des données,là encore, vous voyez, on n'a pas besoin de s'en occuper nous-mêmes,mais le ID, il va commencer automatiquement à ce qui est logique dans la structure de la base de données.
00:00:24 :Donc là, comme on avait déjà des IDs de 1 et 2, et même si on les a supprimés par la suite,on va recommencer à 3, 4 et 5.
00:00:31 :Donc ça, ça se fait automatiquement, mais je voulais juste vous le montrer,parce que c'est quand même assez intéressant de voir que parfois, même quand on a supprimé tout dans notre base de données,on peut repartir avec des IDs ici qui ne seront pas forcément à partir de 1.
00:00:44 :Vous remarquez également que j'ai mis des dates pour les articles, donc ça, on va les utiliser pour les filtres,pour afficher par exemple uniquement les articles qui ont été publiés au mois de janvier.
00:00:54 :Et donc tous ces articles, je les ai créés à partir d'un fichier JSON que j'ai créé pour l'occasion,qui est disponible avec cette partie, et que vous pouvez utiliser également pour recréer ces données à l'intérieur de la base de données.
00:01:04 :Pour ça, j'ai utilisé un petit script que vous voyez ici, que vous avez également de disponible.Donc si j'ai fait tout ça, c'est vraiment juste pour vous montrer qu'au final,ce ne sont que des données qu'on peut récupérer avec Python et recréer avec Django.
00:01:17 :Donc là, ce que j'ai fait, c'est que j'ai importé le fichier JSON,je l'ai récupéré dans une variable data, et ensuite je boucle sur tous les éléments dans mon fichier JSONpour créer des objets de type bloc post.
00:01:28 :Et là, vous voyez que j'ai donc trois objets qui ont été créés avec les IDs 3, 4 et 5.Donc c'est ces objets que l'on retrouve ici dans la base de données.
00:01:36 :Donc maintenant que j'ai tous ces objets, je vais pouvoir récupérer les objets et les filtrer en fonction de différentes valeursqui sont définies sur les champs.
00:01:44 :Par exemple, récupérer uniquement les articles qui sont publiés.Donc pour ça, je vais revenir dans mon interpréteur Python ici.Et donc assurez-vous de bien faire from blog.models import blog post pour avoir accès à notre classe.
00:01:58 :Et ensuite, on va récupérer donc blog post.object.Et là, vous n'êtes pas obligé de faire all.Ça, c'est une erreur que je vois très souvent.
00:02:04 :Les gens, ils pensent qu'il faut mettre obligatoirement all pour ensuite pouvoir utiliser filter.Vous n'avez pas besoin.Vous pouvez utiliser filter directement après object.Et même si vous ne mettez pas all, par défaut, il va filtrer sur tous les articles présents.
00:02:17 :Donc vous pouvez mettre uniquement filter ici.Et à l'intérieur de filter, vous allez indiquer ce sur quoi vous voulez filtrer.Donc par exemple, on va dire qu'on veut récupérer tous les articles qui ont published qui est égal à true.
00:02:29 :Donc je valide.Et là, vous voyez qu'on a bien uniquement deux articles, donc le 3 et le 4.Et qu'on n'a pas l'article 5 dans notre query set.
00:02:37 :Et c'est normal puisque si je retourne dans ma base de données,là, vous voyez que le published est à 1 uniquement sur l'article 3 et 4.
00:02:44 :Et que le 5, il est à 0.Donc vous voyez que pour filtrer, c'est très simple.On a filter.On indique ce qu'on veut filtrer.
00:02:50 :On peut mettre, bien sûr, ici beaucoup plus de paramètres que juste published.On pourrait en mettre plusieurs et filtrer selon plusieurs paramètres.Également, après toutes ces options de filtre, on a plusieurs choses qu'on peut faire.
00:03:00 :Donc comme on l'avait vu avec les crochets, on peut récupérer uniquement le premier élément.Le deuxième élément.On pourrait supprimer tout ça à la suite, donc avec delete.
00:03:08 :Donc tout ça, ça peut s'enchaîner.Là encore, on peut mettre un filter.Ensuite, un delete ou récupérer différentes choses directement sur la même ligne.Vous allez voir à force d'utiliser les filtres qu'ils sont vraiment très, très puissants.
00:03:20 :C'est vraiment une force de l'ORM de Django.Je vais vous montrer un exemple très simple avec la datequi peut vous montrer assez rapidement l'étendue de ce qu'il est possible de faire.
00:03:30 :Par exemple, je pourrais filtrer par date et mettre date et indiquer une date précise.Mais on va pouvoir spécifier, par exemple, l'année.Donc on peut faire date, les tirées du bas, tirée, tirée.
00:03:41 :J'en mets deux et je mets year ensuite.Donc là, c'est bien important de mettre deux tirées du bas et de mettre year.C'est quelque chose qui est codifié à l'intérieur du filtre.
00:03:49 :Et c'est vraiment cette syntaxe qui va nous permettre de filtrer sur les champs de type date par année.Donc là, je vais vouloir récupérer uniquement les articles qui ont été publiés en 2021.
00:04:00 :Donc je mets 2021 ici en chaîne de caractère.Je valide avec entrée.Dans ce cas-ci, j'ai les trois articles qui me sont retournés puisque les trois ont été publiés en 2021.
00:04:09 :Mais imaginons que là, je change pour mettre le premier article avec une date de 2020.Je sauvegarde.Je reviens ici dans mon interpréteur.Je relance.
00:04:18 :Et là, vous voyez qu'on a bien uniquement le 4 et le 5 qui nous sont retournés.Et si je mets 2020 à la place, j'ai bien uniquement le 3 qui m'est retourné.
00:04:25 :Donc je ne vais pas aller plus loin dans cette vidéo parce que vraiment, les options de filtre, il y en a énormément.Il y a vraiment beaucoup, beaucoup de choses que vous pouvez faire.
00:04:32 :Vous pouvez préciser, vous pouvez dire par exemple que vous voulez uniquement les articles dont l'année est plus grande que 2020.Donc pas uniquement 2020, mais 2020 et plus.
00:04:41 :Vous pouvez faire des comparaisons.Enfin, il y a vraiment beaucoup de choses que vous pouvez faire dans les filtres.Donc je vais vous mettre un article vers la documentation de Django qui va vous permettre d'explorer un peu plus tout ça de votre côté.
00:04:52 :Ça pourrait là encore faire l'objet d'une formation complète juste sur ces options de filtre.Donc je ne vais pas m'étendre plus là-dessus.Mais sachez donc déjà que vous pouvez filtrer de base sur les champs que vous avez créés sur vos modèles.
00:05:04 :Donc ça, c'est ce qu'on fait le plus souvent.Vous indiquez le champ, la valeur sur laquelle vous souhaitez filtrer.Et ensuite, tout ça, ça vous retourne un query set sur lequel vous pouvez effectuer d'autres opérations.
00:05:14 :On peut même chaîner les filtres.Par exemple, si je remets cette ligne avec l'année, après ça, je pourrais remettre un filtre ici pour dire filter published égale true et valider.
00:05:30 :Et bien sûr, je peux mettre tout ça dans le même filtre.Je ne suis pas obligé de faire deux filtres.C'était juste pour vous montrer qu'on peut filtrer les choses les unes à la suite des autres.
00:05:37 :Vous pouvez également utiliser exclude qui est l'inverse de filter.Donc là, on va exclure des éléments de notre query set selon différents champs, donc selon différentes valeurs qui sont définies dans nos champs.
00:05:48 :Mais à l'intérieur d'un même filtre, là encore, on peut mettre plusieurs paramètres.Je ne suis pas obligé de chaîner les filtres comme ceci.Je peux mettre dans ce filtre date year 2021 et published égal à true.
00:05:58 :Je valide et là, j'ai bien le même résultat qui est affiché.Je vais vous montrer rapidement quand même avec delete ce que ça donne.Donc là, je peux faire l'inverse de filter en mettant exclude.
00:06:07 :Donc là, je vais exclure tout ce qui a été publié en 2021.Je me retrouve uniquement avec l'article 3 puisque l'article 3 est le seul qui n'a pas été publié en 2021 dans ma base de données actuelle.
00:06:19 :Donc voilà pour ces options de filtre, filter, exclude.Je vais vous mettre un lien pour que vous puissiez continuer votre lecture là-dessus et essayer tout ça de votre côté.
00:06:27 :C'est vraiment très puissant ce qu'on peut faire avec Django.Et vous allez voir, je pense que vous allez rapidement devenir accro à cette façon de faire,cette façon de manipuler votre base de données directement avec Pythonet avec la programmation orientée objet et les classes qu'on a créées pour nos modèles.
folder_zip
Télécharger les fichiers
cloud_download
sources.zip
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.