- 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 voir comment retourner un template HTML, donc un fichier HTML qui nouspermet d'afficher des informations. Dans ce cas-ci, on va afficher un article de blog grâce à une
00:00:10 :fonction raccourcie à l'intérieur de notre fichier views.py. Ici, j'ai une vue blog post qui estreliée à une URL, donc blog avec le slog de l'article que je veux afficher. On lit cette
00:00:22 :vue à cette URL et on l'a nommée tout simplement blog post. Dans cette vue, je récupère l'articlequi correspond au slog qui est passé à cette vue. Je récupère ça dans une variable post et je vais
00:00:34 :ensuite pouvoir retourner le contenu de cet article de blog de différentes façons. La première façonde faire, c'est là encore de passer par un objet HTTP response. Je peux faire une variable response
00:00:43 :qui va être égale à HTTP response et on pourrait retourner directement post.content, donc lecontenu du post sans avoir de mise en forme HTML, donc sans passer par ce template directement,mais juste en retournant le contenu du post. Si je reviens sur mon site et que j'actualise,
00:00:58 :vous allez voir qu'on a encore une erreur puisque je n'ai pas retourné mon objet response, donc ilfaut le retourner bien évidemment ici. Je reviens et j'actualise et là on a bien donc découvre le
00:01:07 :fonctionnement des modèles avec Django avec aucune mise en forme. Donc là, on a juste lecontenu de l'article et on ne passe pas par ce fichier de template HTML. On pourrait récupérer
00:01:15 :ce template avec une fonction qui nous permet de récupérer un template HTML et de le retournersous forme de chaîne de caractère. Cette fonction s'appelle render to string et elle est dans un
00:01:26 :module assez nébuleux, donc je vais utiliser la petite ampoule ici de PyCharm pour automatiquementfaire l'import. Donc là, il se trouve vous voyez dans Django template loader, on a render to string.
00:01:35 :Donc je l'importe ici et on va pouvoir rendre notre template sous forme de chaîne de caractère.Donc le template se trouve dans blog, il s'appelle post.html. Donc je vais l'indiquer ici blog
00:01:44 :slash post.html et on va pouvoir passer un contexte. Vous voyez ici le deuxième paramètre, c'est lecontexte. Donc on va passer le contexte et on va dire contexte est égal à blog post et on va passer
00:01:56 :notre article de blog. Donc là, le contexte blog post, c'est ce qu'on passe à notre template HTMLet on l'utilise pour afficher le contenu de notre blog post, le titre de notre blog post et iciégalement dans title. Donc ça, ça va nous permettre de récupérer ce template HTML en
00:02:11 :lui passant le contexte et tout ça sous forme de chaîne de caractère. Donc on peut passer tout çadirectement à notre objet HTTP response. Donc là, on le passe dans notre HTTP response et on
00:02:20 :retourne notre réponse. Je reviens ici, j'actualise et là vous voyez qu'on a bien notre fichier detemplate qui est utilisé à la place de simplement le contenu de notre article. Donc on a bien un
00:02:30 :fichier de template, on a bien ici le titre de l'article qui est affiché sur l'onglet. Donc toutfonctionne correctement. Donc c'est possible là encore de passer par un HTTP response avec une
00:02:40 :fonction ici qui nous permet de récupérer le template sous forme de chaîne de caractère maisce n'est pas très efficace. La façon la plus efficace de faire c'est de passer directement par
00:02:48 :une fonction qui va nous permettre de faire tout ça d'un coup sans passer par la création de notrepropre objet HTTP response et cette fonction c'est la fonction render. Tout simplement donc
00:02:58 :render qui est celle que vous allez le plus souvent utiliser à l'intérieur de vos vues. Donclà encore je ne sais plus trop dans quel module elle se trouve donc je vais utiliser l'ampoulede Python et vous voyez qu'elle est dans le module donc Django shortcut. Donc shortcut qui
00:03:09 :veut dire raccourci en anglais donc c'est bien une fonction de raccourci. On l'importe et on vapouvoir ensuite retourner donc cet objet render. Donc cet objet qu'est ce qu'on lui passe ? On va
00:03:19 :lui passer en premier lieu la requête donc request ici qui est l'objet que l'on récupère dans notrevue. On va ensuite lui passer un template donc le template qu'on avait qui est blog slash post
00:03:29 :point html et en troisième on va lui passer le contexte. Donc le contexte dans ce cas ci c'étaitblog post donc pour la clé et pour la valeur c'était notre variable post qu'on a récupéré ici. Donc
00:03:41 :vous voyez que c'est un peu plus rapide que de faire ce qu'on avait précédemment avec le renderto string avec le HTTP response. Ici directement avec cette fonction raccourci on passe la requête,
00:03:50 :notre fichier de template html et notre contexte. Donc je vais tester tout ça, je reviens sur mapage, j'actualise et là normalement on devrait avoir exactement le même résultat. Donc voilà
00:04:01 :pour cette première fonction raccourci la fonction render qui est très pratique comme je vous disaisc'est généralement celle ci qu'on utilise à moins de n'avoir besoin de retourner que par exemple unJSON response ou un HTTP response très basique sans avoir besoin de loader un template html. Dans ce
00:04:15 :cas ci on peut passer par un objet plus simple mais si vous avez besoin de retourner un templateje vous conseille directement de passer par cette fonction raccourci render. Avant de finir cette
00:04:24 :vidéo je vais juste vous montrer pour dire que je ne dis pas de bêtises que tout ça en faithérite de HTTP response. Donc je vais prendre cet objet que l'on retourne, je vais le mettre dans
00:04:32 :une variable R et je vais afficher le type de R et je le retourne ici et on va aller retourner surnotre site pour actualiser la page. Donc là ça ne change rien mais si je reviens dans PyCharm
00:04:43 :et que j'affiche le run ici on voit qu'on a bien donc le type qui est affiché donc le type de cetobjet qui est retourné par la fonction render et là comme je vous disais aucune surprise il s'agitégalement d'un objet de type HTTP response. Donc c'est vraiment juste une fonction raccourci tout
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.