- 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 s'intéresser à la base de toutes les requêtes qui sont renvoyées dans lesvues grâce à l'objet HTTP response. Actuellement, j'ai dans mon fichier urls.py un chemin d'URL qui
00:00:12 :redirige vers la vue blog post qui, pour l'instant, ne contient rien. Donc, si on met juste un passà l'intérieur de notre vue, on va avoir une erreur si on essaye d'accéder à la page. On a
00:00:22 :l'erreur qui indique que la vue, donc la vue blog post, n'a pas retourné d'objet HTTP response,que ça a retourné none à la place. Donc, c'est normal puisqu'ici, on ne retourne rien. Donc,
00:00:32 :par défaut, c'est comme si on faisait un return de none. Donc, vous êtes obligés de renvoyer cequ'on appelle un objet HTTP response. Donc, cet objet, il est disponible à l'intérieur du module
00:00:42 :django.http. Donc, on peut l'importer et on peut retourner un HTTP response. On n'est même pasobligé de mettre quoi que ce soit à l'intérieur. On peut juste faire un return de HTTP response
00:00:52 :avec les parenthèses ici, ce qui va avoir pour effet de créer une instance de cet objet et dela retourner directement. Donc, je reviens dans ma vue, je relance mon blog et là, vous voyez qu'on
00:01:03 :a bien une page blanche qui s'affiche. Donc, on n'a plus d'erreur et on n'a rien qui s'affichepuisqu'on n'a rien mis à l'intérieur de notre HTTP response. Donc, on peut passer des éléments
00:01:11 :à afficher à l'intérieur du HTTP response. On pourrait dire, par exemple, hello world toutsimplement. Et si je reviens sur mon site et que j'actualise, j'ai bien hello world qui s'affiche.
00:01:20 :Si on va faire un petit clic droit pour inspecter le code source de la page, on va voir qu'on avraiment le strict minimum pour afficher une page web. Donc, on a un tag html, un tag head,
00:01:31 :un body et à l'intérieur du body, on retrouve le texte hello world que l'on avait envoyé à notreobjet HTTP response. On peut donc bien entendu mettre du html directement à l'intérieur de
00:01:41 :cette chaîne de caractère. Donc, je pourrais retourner un tag h1 avec mon hello world àl'intérieur et si je rafraîchis la page, j'ai bien donc à l'intérieur du body, cette fois-ci,un tag h1 avec mon texte hello world. Donc, si je reviens sur la page, j'ai bien le tag h1 ici
00:01:54 :qui affiche le texte sous forme de titre. Donc, on peut retourner du texte, on peut retourner duhtml. En fait, le html ce n'est rien d'autre que du texte. Donc, en fait, quand on met un tag ici,
00:02:04 :c'est tout simplement la page après qui va comprendre ce texte comme du html. Cet objetHTTP response, il est vraiment à la base de tout ce qu'on va retourner dans nos vues. On peut même
00:02:14 :donc créer un objet vide qu'on va remplir par la suite. Donc ici, je vais faire une instance deHTTP response qui ne contient rien pour l'instant et je pourrais très bien remplir le contenu avecl'attribut content de cette instance, donc l'instance R qui correspond à mon objet HTTPresponse et je remplis donc ce contenu par la suite. Donc là, je vais remettre quelque chose,
00:02:32 :donc par exemple bonjour tout le monde et on peut retourner le R ici. Et si je reviens donc dans mavue que j'actualise, là j'ai bien mon texte bonjour tout le monde qui s'affiche. Un truc
00:02:42 :assez intéressant, c'est qu'on peut également modifier pas mal d'éléments sur cette requêteHTTP response. Pour vous montrer tout ça un petit peu plus en détail, je vais refaire un
00:02:51 :clic droit et aller dans inspect et on va aller donc dans chrome dans l'onglet network. On pourraitfaire la même chose à l'intérieur d'un terminal, par exemple avec l'utilitaire curl qui estdisponible de base sur macOS et Linux. Donc si je fais un curl à cette adresse, vous voyez que ça
00:03:06 :nous retourne une requête HTTP avec un code de 200 qui signifie que la requête a été correctementeffectuée. Dans le content type, on voit qu'on a un contenu de type texte HTML et on a bien le
00:03:17 :contenu ici bonjour tout le monde qui nous est retourné. Toutes ces informations, on y a accèsdonc directement dans l'onglet network des outils de google chrome ou les outils similaires que vouspouvez retrouver sur d'autres navigateurs internet. Si j'actualise, on va voir qu'on a bien ma requête
00:03:31 :ici vers le blog et si je clique dessus, on va retrouver les mêmes informations. On a bien lestatus code ici qui est à 200 et on va retrouver le content type avec un texte de HTML et si jevais dans le response, ici j'ai bien le texte de la réponse qui est affiché. Donc tout ça pour vous
00:03:45 :montrer que l'objet qu'on retourne ici, il a plusieurs attributs comme le contenu, le statuscode, le content type que l'on peut modifier. Par exemple, je pourrais modifier le status code. Si
00:03:54 :vous voulez signifier que par exemple la page n'a pas été trouvée, on pourrait mettre un statuscode de 404 qui est le code qui signifie que les pages ne sont pas trouvées donc les fameuses pages404 qui signifie que le contenu n'a pas été trouvé. Et vous allez voir que c'est assez intéressant
00:04:07 :puisqu'ici je mets bien un contenu à l'intérieur de mon objet HTTP response, je fais juste changerle status code et je retourne cet objet. Et vous allez voir que si j'actualise, ma page s'affiche
00:04:18 :correctement donc je n'ai pas une erreur 404. Et si je vais voir dans inspect dans l'onglet networket que je relance donc que je rafraîchis en faisant un refresh sur ma page, là vous voyez que larequête est indiquée en rouge on a bien un statut de 404 et si je clique dessus et que je reviens sur
00:04:32 :headers on a bien 404 not found. Pourtant la requête a correctement fonctionné donc vousvoyez qu'on peut très bien changer le status code qui est retourné tout en ayant une pagefonctionnelle. Donc vraiment vous pouvez manipuler cet objet HTTP response comme bon
00:04:46 :vous semble. On peut également changer ce qu'on appelle donc le content type qui va être contenudans ce qu'on appelle l'entête. Donc pour ça en fait il faut considérer que votre objet est comme
00:04:54 :un dictionnaire et pour changer la valeur associée à une clé d'un dictionnaire on met donc lescrochets. On va dire qu'on veut changer content type et qu'on veut maintenant que ce soit égal à
00:05:03 :application slash json. Et là ça va me permettre de retourner du json. Donc là si je reviens pourl'instant et que j'actualise ma page vous voyez que rien ne semble avoir changé. Si je vais dans
00:05:13 :inspect et que je regarde ma requête donc je vais refaire un refresh pour afficher la requête là onvoit par contre que le content type a bien été modifié et qu'on a maintenant application slashjson. Et si je veux retourner donc un dictionnaire c'est possible. Alors pour ça il faut toujours le
00:05:27 :mettre sous forme de chaîne de caractère donc je vais mettre un dictionnaire comme ceci avecune clé et une valeur. Donc je vais remettre bonjour tout le monde et là on va donc pouvoir
00:05:35 :retourner un dictionnaire avec le content type qui est maintenant application slash json. Si jereviens sur la page et que j'actualise vous voyez qu'on a bien notre dictionnaire qui nous estretourné et si je reviens sur la requête on a bien là encore application slash json. Donc c'est
00:05:49 :vraiment la base de ce que vous pourriez faire si vous aviez envie de faire une API REST donc uneAPI qui vous retourne des données sous le format json. Vous voyez qu'on peut le faire directement
00:05:58 :à partir de ce même objet HTTP response en manipulant donc le contenu, le content typequi est l'entête en fait qui nous permet de spécifier que dans ce cas-ci on va retournerun objet de type application slash json et non plus de type texte html comme on avait précédemment.
00:06:12 :Donc vous voyez que tout ça est totalement possible directement à partir de cet objet et toutes lesautres fonctions qu'on pourrait utiliser qui vont nous permettre de retourner plus facilement desdonnées json ou des pages d'erreur 404 vont en fait découler directement de cette classe HTTPresponse.
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.