- 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 :Avec le langage de gabarit de Django, vous allez pouvoir passer des variables depuis votre vue àun fichier de template, donc un fichier HTML. Dans ce cas-ci, j'ai un objet blog post que je
00:00:12 :récupère à partir de mon modèle blog post. Donc dans ce cas-ci, on récupère l'objet avec leprimary key qui est égal à 3 et on va passer des données avec le dictionnaire ici, qui est ledictionnaire que l'on passe au contexte. Donc là, je ne l'ai pas indiqué, mais je peux mettre le
00:00:27 :nom du paramètre, donc le paramètre c'est contexte, et on lui passe un dictionnaire. Donc on va avoirune paire de clés et de valeurs, on peut en mettre autant qu'on veut. Dans ce cas-ci, j'ai donc la
00:00:36 :clé blog post qui est le nom de la variable que l'on va utiliser dans notre template, et ici lavaleur qui est égale donc au blog post que j'ai récupéré ici. Donc il faut bien noter que les
00:00:46 :deux n'ont pas besoin d'être similaires. On pourrait appeler ma variable ici a, et dans ce cas-ci,passer cette variable a à la variable blog post, ça n'a aucune importance. Là dans ce cas-ci,
00:00:56 :le nom est le même, et donc j'ai le même nom pour la clé et la valeur, mais ce n'est pas uneobligation. Maintenant, si je vais voir dans mon fichier html, on voit que je peux utiliser cette
00:01:06 :variable, donc cette variable que j'ai passée dans le dictionnaire au contexte, avec les doublesaccolades. Donc pour insérer une variable, on met deux accolades pour ouvrir le nom de la variable,
00:01:16 :et on ferme avec deux accolades, et Django va remplacer donc cette partie ici par ce que contientla variable. On peut également utiliser donc des attributs ou des propriétés ou des méthodes,
00:01:27 :donc n'importe quoi qui est disponible avec la notation du point sur cet objet, et ça vaégalement être affiché. Donc par exemple ici, je récupère le titre de mon blog post, donc si je
00:01:38 :vais voir dans les modèles, j'ai un champ title ici, qui va donc appartenir à chacune de mesinstances qui sont créées à partir de blog post. Donc ça me permet ici de récupérer avec la
00:01:48 :notation du point l'attribut qui appartient, donc l'attribut title qui appartient à blog post.A ce sujet, il y a quelque chose d'assez important à noter, c'est qu'il ne faut pas mettre deparenthèses après les méthodes. Donc là dans ce cas-ci pour title et content, il s'agit d'attributs
00:02:03 :de classe, donc ces attributs ici qui sont en fait des champs dans ma base de données, et en faitici j'ai une méthode numberOfWords. Donc numberOfWords, c'est une méthode que j'ai définie
00:02:13 :ici. Donc vous voyez que ce n'est pas une propriété, donc ça veut dire que quand on va l'appeler avecPython, on va devoir mettre des parenthèses. Par exemple si je vais dans ma vue ici, et que je veux
00:02:21 :récupérer le numberOfWords, donc cette méthode, je vais devoir faire blog post.numberOfWords etje vais devoir mettre les parenthèses, puisque si je ne mets pas les parenthèses, on ne va pasappeler la méthode, et ici on aura juste une méthode, mais on n'aura pas le résultat de cetteméthode. Donc on n'aura pas le nombre de mots qui correspond ici au nombre de mots de mon contenu.
00:02:40 :Donc ce que je pourrais faire ici, c'est mettre un at property, et le fait de mettre un at property,donc là c'est du basique de Python, je ne vous refais pas un cours sur les classes, mais si onmet at property ici, ça permet de transformer cette méthode en propriété, et ça nous permet
00:02:53 :donc de récupérer le nombre de mots sans mettre les parenthèses. Mais donc si j'enlève cettepropriété, même si en Python on est obligé de mettre les parenthèses pour récupérer, donc pourappeler en fait, et récupérer ce que retourne cette méthode, eh bien ce n'est pas le cas dansle langage de gabarit. Donc si je vais dans le langage de gabarit, ici il ne faut pas mettre
00:03:12 :de parenthèses. Si je mets des parenthèses en fait, et que je reviens sur le site que j'actualise,vous voyez qu'on a une erreur, et Python nous dit qu'il ne peut pas accéder donc à cette méthode,donc la méthode numberOfWords, en fait il ne comprend pas à quoi correspondent ces parenthèses.
00:03:25 :Et vous allez voir que si j'enlève ces parenthèses, eh bien automatiquement le langage de gabarit vaêtre suffisamment intelligent pour se rendre compte qu'il ne s'agit pas d'une propriété oud'un attribut, mais bien d'une méthode, et qu'il doit l'appeler pour récupérer ce que retournecette méthode. Donc si je reviens sans les parenthèses cette fois-ci, là vous voyez que
00:03:42 :ça fonctionne et on a bien le nombre de mots qui est affiché. Dernier point pour les variables,vous ne pouvez pas, là encore contrairement à Python, mettre un tiré du bas au début du nomde ces variables. Donc si je reviens dans ma vue ici, je ne peux pas dans le contexte passer une
00:03:56 :clé ici qui a comme premier caractère un tiré du bas. Si je fais ça et que je reviens dans monpost pour changer les blog posts et mettre un tiré du bas devant, vous allez voir que si je revienssur mon site et que j'actualise, je vais avoir une erreur et donc l'erreur est assez explicite,
00:04:11 :elle me dit clairement que les variables et les attributs ne peuvent pas commencer par un tiré dubas. Donc ça c'est la seule différence puisque là encore dans Python, on peut faire une variable
00:04:20 :qui va commencer par un tiré du bas, donc comme ceci par exemple, c'est tout à fait valide maisdans le langage de gabarit de Django vous ne pouvez pas. Donc ne pas mettre de tiré du bas
00:04:28 :avant, ça c'est une autre délimitation, mais généralement c'est assez rare qu'on ait besoinde mettre un tiré du bas. Ça peut être assez pratique dans Python quand on veut faire ce qu'on
00:04:37 :appelle des attributs privés dans une classe par exemple, mais dans Django ici c'est vraiment lenom de la variable que l'on va utiliser dans notre template donc il n'y a pas vraiment de raison demettre un tiré du bas au début. Donc voilà comment afficher une variable, comment afficher également
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.