- 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 :Donc actuellement on a notre requête qui est envoyée, donc notre requête qui va envoyer lesdonnées du formulaire que l'on a créé ici à l'URL qui est indiquée, donc l'URL de compute. Donc on
00:00:09 :va envoyer toutes ces données dans notre vue ici et on va pouvoir donc récupérer ces données et lestraiter. Donc ici en fait ce que je vais faire c'est tout simplement ce que j'avais dans ma vue home
00:00:17 :ici dans laquelle on vérifiait si on avait bien une requête de type post et ensuite on récupéraitles données pour faire l'opération. Donc en fait on va faire exactement la même chose ici, je vais
00:00:25 :copier ces lignes et vous allez voir qu'en fait request.post c'est tout simplement un dictionnairequi va contenir les données de notre formulaire. Donc je vais ici tout simplement faire un print
00:00:34 :de request.post pour vous montrer les données qui sont récupérées dans notre vue à partir de cequ'on a envoyé ici en javascript. Donc je vais ouvrir l'onglet terminal ici qui est l'onglet
00:00:43 :dans lequel j'ai lancé mon serveur Django, je vais actualiser la page, donc là je suis bien sur lapage d'accueil avec une requête get donc qui a fonctionné puisqu'on a un statut 200 donc c'estbien ma page ici qui est affichée, je vais rentrer des valeurs donc 5 et 6, j'appuie sur calculer et
00:00:59 :là on voit qu'on a un petit problème donc on a bien la requête qui est effectuée donc une requêtepost vers compute mais on a une erreur 403 et vous voyez ici que c'est indiqué en fait forbiddenCSRF token missing. Donc quand on fait une requête post par défaut en fait Django va s'attendre à
00:01:15 :ce qu'on envoie avec cette requête un jeton donc un jeton CSRF qui est un jeton qui va en faitrajouter une couche de sécurité sur notre site pour éviter qu'un formulaire soit modifié avantqu'il soit envoyé donc ça permet de vérifier que le formulaire a bien été envoyé à partir de ce
00:01:30 :fichier html et qu'il n'a pas été modifié en chemin. Donc ce qu'on peut faire pour rapidementrégler le problème c'est de désactiver cette vérification du jeton CSRF directement dans notrevue. On verra par la suite comment récupérer ce jeton et l'envoyer avec notre requête mais pour
00:01:45 :l'instant on va juste rajouter ici un décorateur qui va nous permettre de désactiver cettevérification pour cette vue spécifiquement. Donc ce décorateur c'est csrf-exampt et donc ça
00:01:56 :c'est un décorateur qu'il faut importer donc là encore je vais utiliser la petite ampoule ici etje vais l'importer directement cliquant ici puisque là encore c'est un module à rallonge doncdjango.views.decorators.csrf rien que ça. Donc à l'intérieur de ce module on a le csrf-exampt
00:02:11 :ici que l'on peut utiliser en tant que décorateur donc avec l'arrobase donc arrobase csrf-examptque je mets au dessus de cette vue. Et là vous allez voir que cette fois-ci on n'aura plus donc
00:02:19 :cette erreur et on va pouvoir effectuer notre requête. Donc j'actualise, je rentre le 5, le 6,j'appuie sur calculer et là vous voyez qu'on a bien donc cette requête POST qui est effectuéecette fois-ci avec un retour de 200 donc la requête a été correctement effectuée et on a bien notre
00:02:35 :dictionnaire qui est affiché ici avec nos deux valeurs donc avec la clé A et la clé B et lesvaleurs 5 et 6 qui sont envoyées et récupérées dans notre vue. Donc ce qu'on va pouvoir faire
00:02:44 :maintenant c'est faire le calcul et le retourner dans notre JSON response. Donc je vais copier ceque j'avais fait ici donc le calcul de int de A plus int de B puisque A et B ici vont êtrerécupérés sous forme de chaîne de caractère et je vais donc mettre ce calcul ici qu'on va retourner
00:02:58 :donc dans un dictionnaire que l'on va retourner avec JSON response. Donc on a notre JSON response,notre dictionnaire avec la clé RESULT et le résultat qui est égal à l'opération de int de Aplus int de B et on a récupéré donc A et B ici à partir de notre dictionnaire request.post avec
00:03:14 :la méthode GET. Donc rien de plus compliqué ici c'est vraiment ce qu'on faisait dans cette vuesauf que là dans la vue on vérifiait qu'on avait bien une requête de type POST, là vu qu'on estavec une autre vue compute qui va être appelée uniquement quand on va effectuer cette requête
00:03:28 :ici avec une méthode POST, on est assuré que cette vue va être appelée de toute façon avecune requête POST. Donc on n'a pas besoin de faire cette vérification supplémentaire comme on le
00:03:36 :faisait dans notre vue ici puisque dans la vue home actuellement et bien je pouvais avoir deuxtypes de requêtes soit un type GET quand j'accède à la page directement soit un type POST quand jesoumettais mon formulaire précédemment quand j'avais ma balise formulaire ici et que je cliquaissur le bouton SUBMIT. Donc là dans ce cas-ci on a deux vues séparées je vais pouvoir par la même
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.