- 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 les parties qui vont suivre, on va s'intéresser cette fois-ci aux filtres intégrés au gabarit deDjango. Donc vous avez beaucoup de filtres qui sont disponibles. Vous voyez toute la liste ici,
00:00:10 :donc dans la référence des filtres intégrés dans la documentation. Donc vous voyez qu'il y en a pasmal qu'on peut utiliser, qui sont assez pratiques. Et dans cette partie, je vais vous expliquer déjà
00:00:20 :dans quel cas il faut utiliser des filtres. Puisque ces filtres, ils sont très pratiques,mais ils font parfois des choses que l'on peut faire directement en Python. Par exemple,
00:00:28 :vous avez le filtre lower ici. Et si je clique dessus, vous voyez que tout simplement, çaconvertit une chaîne en minuscule. Donc c'est quelque chose qu'on peut faire directement dans
00:00:37 :Python. Si je vais dans une vue ici et que je veux mettre, par exemple, le titre de l'articleen minuscule, il me suffit d'utiliser la méthode lower qui est disponible sur les chaînes decaractère. Donc en général, moi je vous dirais qu'il est préférable, si vous pouvez le faire
00:00:51 :directement dans la vue, de le faire ici, donc dans la vue au niveau du Python. Ça va vouspermettre d'avoir des fichiers HTML qui seront un peu plus légers, qui auront moins de chosesécrites à l'intérieur, puisque à l'intérieur du fichier HTML, généralement, on est un peuplus limité. Au niveau du Python, on peut faire des variables, on peut découper notre code beaucoup
00:01:10 :plus facilement que ce qu'on peut faire directement dans un fichier HTML. Donc c'est vraiment pour çaque je vous conseille de le faire directement au niveau du Python, et même encore plus auniveau des modèles, puisque là on est dans une vue. Généralement, je vous conseille de ne pas
00:01:24 :trop surcharger les vues. Si vous avez besoin de retourner quelque chose de très précis, eh bienil vaut mieux aller directement dans votre modèle, comme on l'a fait par exemple ici, pour récupérerle nombre de mots. Donc on a fait une méthode numberOfWords qui est contenue directement à
00:01:38 :l'intérieur de notre classe, qui représente notre modèle d'article, et comme ça, directement ici,donc que ce soit au niveau de la vue, on peut récupérer le numberOfWords, donc en faisantpost.numberOfWords comme ceci, et on pourrait par exemple le passer à notre contexte, ou directement
00:01:55 :à l'intérieur de notre fichier HTML ici, on pourrait utiliser cette variable, donc afficherpar exemple ici, blogPost.numberOfWords, donc comme ceci. Donc vous voyez que comme ça, ça
00:02:05 :permet de décharger là encore le code, d'avoir du code très simple et épuré à l'intérieur de vosfichiers HTML, et d'avoir la logique qui se fait soit dans le modèle, soit dans la vue. Donc si
00:02:16 :vous pouvez le faire dans le modèle, si ça a vraiment une logique, si par exemple comme ici,vous avez quelque chose qui a une logique par rapport à votre classe, là c'est une propriétéqui est assez logiquement disponible dans notre classe, puisque c'est le nombre de mots de notre
00:02:30 :article, donc si c'est possible, s'il y a vraiment un lien logique entre les deux, je vous conseillede le mettre directement sur le modèle. Si c'est quelque chose qui est plutôt spécifique à une
00:02:38 :vue, donc par exemple vous avez des données que vous souhaitez afficher dans la vue de l'articlede blog, mais que ces données ne sont pas forcément reliées à l'article de blog en question,dans ce cas-ci il vaut mieux ne pas le mettre dans le modèle, mais directement dans la vue.
00:02:52 :Et pour revenir aux filtres, il faut savoir que tous les filtres que vous avez de disponiblesà l'intérieur du HTML, donc par exemple pour mettre quelque chose en minuscule, je pourraismettre un filtre ici directement sur le titre du blog post, et pour mettre un filtre, on mettout simplement l'opérateur pipe, donc la barre verticale comme ceci, et on met le nom du filtre,
00:03:12 :donc par exemple lower dans ce cas-ci. Donc ça c'est possible de le faire directement dans lefichier HTML, donc en mettant un filtre avec l'opérateur pipe, mais il faut savoir que cesfiltres, on y a également accès à l'intérieur du fichier Python. Donc je vais vous montrer par
00:03:27 :exemple des filtres qui sont assez intéressants, si je reviens tout en haut, il y a des filtresqui nous permettent de faire des choses qui sont un peu compliquées ou pour lesquelles il n'existepas forcément un module, par exemple il y a Slugify qui permet de convertir une chaîne de
00:03:39 :caractère en Slug, il n'existe pas de méthode .slugify par exemple sur une chaîne de caractère.Donc là ça peut être pratique d'utiliser ce filtre, et ce filtre comme je vous dis, on peutl'utiliser directement depuis le Python. Si je tape Slugify ici, je vais utiliser PyCharm pour
00:03:54 :automatiquement faire l'import, donc là je vais cliquer sur l'ampoule, import this name, et vousvoyez qu'on retrouve dans Django template default filters, le filtre Slugify. Et tous les filtres
00:04:03 :qu'on a d'affichés ici, donc si je descends un peu, par exemple on va avoir strip tags ici,qui est très pratique puisqu'il permet d'enlever des balises HTML dans notre texte, et bien cestrip tags, on va le retrouver à l'intérieur de default filters. Donc ici si je tape strip tags,
00:04:19 :vous voyez qu'il est automatiquement détecté. Donc tout ça, le Slugify, le strip tags, vous pouvezle faire directement ici. Donc là encore, plutôt que de faire dans mon fichier ici, par exemple
00:04:28 :l'opérateur pipe et Slugify, et bien je peux utiliser la fonction, donc c'est une fonctiondans ce cas-ci, pour dire par exemple post Slug égale Slugify de post.title. Donc vous voyez qu'on
00:04:40 :est un peu parti dans tous les sens, je voulais juste vous montrer vraiment que tout ça c'estpossible à différents endroits. On peut le faire dans le fichier HTML avec l'opérateur pipe et le
00:04:50 :nom du filtre, donc c'est très pratique de pouvoir faire ça dans certains cas. On peut le faireégalement avec Python au niveau de la vue, et on peut le faire également au niveau des modèles.
00:04:59 :Donc je pense que vous commencez à voir qu'avec Django, il y a plusieurs façons de faire leschoses et il n'y a pas forcément une seule bonne façon de faire, c'est vraiment en fonction descas de figure que vous allez avoir une façon qui est peut-être privilégiée ou plus intéressante
00:05:11 :pour les raisons que je vous ai citées dans cette vidéo. Dernière chose, vous verrez qu'il y acertains filtres qui peuvent prendre en paramètre des éléments. Par exemple avec truncate cars ici,
00:05:22 :ou truncate words, ce sont des filtres qui sont assez intéressants. Truncate words, par exemple,nous permet de couper un certain nombre de mots, donc de faire un troncage sur une chaîne decaractère, et bien ce filtre ici, on va lui donner un nombre de mots qu'on souhaite conserver. Par
00:05:38 :exemple ici, on a quatre mots et on souhaite n'en conserver que deux, donc on va donner en paramètrele nombre 2, et pour ça il suffit de mettre les deux points. Donc vous avez votre valeur,
00:05:47 :vous avez ensuite l'opérateur ici pipe qui permet d'indiquer que vous voulez assigner un filtre,donc utiliser un filtre sur cette valeur, et ensuite vous avez les deux points pour spécifierle paramètre que vous souhaitez passer à ce filtre. Donc dans ce cas-ci, on passe 2,
00:06:01 :et ça a pour effet de ne garder que deux mots à l'intérieur de notre chaîne de caractère.Donc voilà pour ces filtres, je vous conseille d'aller voir dans la documentation, dans laréférence des filtres intégrés, dans les parties qui vont suivre je vais vous en montrer quelques-uns,mais je ne peux pas tous les montrer, il y en a beaucoup trop, et donc je vous conseille par
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.