- 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 :En ce moment dans notre projet, dans le fichier settings.py notamment, on a des données qui sontsensibles et qu'il ne faut pas mettre directement dans ce fichier et à terme dans notre dépôtGitHub. C'est vrai pour cette secret key ici que l'on va externaliser donc on va la sortir de ce
00:00:16 :fichier et on va la mettre dans un fichier qui lui ne sera pas mis en ligne sur GitHub. Et ce fichieron va le créer nous localement et on va également le créer sur le serveur de Python Anywhere. Ça va
00:00:27 :nous permettre en plus d'avoir des variables qui vont être différentes pour notre environnementlocal et pour notre environnement de production. Notamment pour cette variable debug qui doit être
00:00:37 :à true uniquement quand vous êtes en mode local et c'est exactement ce qui est marqué ici. Là aussivous avez un autre security warning donc qui vous indique que cette clé ici ne doit pas être visibleen production et également ici que cette variable donc debug doit être à false quand vous êtes en
00:00:51 :production. On va également modifier cette variable allowed host pour mettre l'url de notre site quandon sera en production. Donc pour ça on va utiliser une bibliothèque qui s'appelle Python Environ donc
00:01:02 :on va l'installer dans notre environnement virtuel. Je vais donc ouvrir un terminal icidirectement dans PyCharm. Moi dans PyCharm mon environnement virtuel est déjà sourcé si ce n'est
00:01:11 :pas le cas vous pouvez le sourcer donc de votre côté en allant chercher dans .env le fichieractivate avec la commande source. Donc une fois que votre environnement est sourcé vous pouvez
00:01:20 :installer le package Python Environ avec pip donc pip install python environ. On attend quel'installation se termine c'est normalement assez rapide et on va pouvoir donc créer notre fichierqui va contenir maintenant ces variables que l'on va mettre donc directement dans blog donc dans ledossier blog ici donc le dossier qui contient settings.py. On va créer notre fichier donc on va
00:01:41 :faire un clic droit new et je vais faire un fichier que je vais appeler .env donc ce n'est pasobligatoire de l'appeler comme ça c'est un peu une convention si vous trouvez que ça va vous mélangeren fait avec votre dossier qui contient votre environnement virtuel puisque moi dans mon cas
00:01:54 :il s'appelle également .env vous pouvez mettre un autre nom ici moi je vais laisser .env et dansce fichier on va donc mettre des variables que l'on va ensuite aller récupérer et insérer ici dansnotre fichier de settings. Donc à l'intérieur de ce fichier .env qu'est ce que je vais mettre je vais
00:02:09 :mettre déjà la variable secret key donc secret key ici on va prendre tout ça en fait et on va lecoller ici je vais juste enlever l'espace et garder donc secret key égale à cette chaînede caractère. On va ensuite faire une variable debug qui va être égale à true donc là on est en
00:02:25 :mode local donc en mode local je vais la laisser à true et en production on créera ce même fichieret on la mettra à false et dans le allowed host on va mettre une chaîne de caractère qui vacontenir l'adresse ip locale donc 127.0.0.1 qui est l'adresse de notre site quand on est en
00:02:41 :développement local. Donc maintenant qu'on a créé nos variables on va pouvoir aller les récupérerdans ce fichier donc ici on va importer le module environ et après le base dir donc après cettevariable ici on va aller créer un objet qu'on va mettre dans une variable et qui va être égale
00:02:57 :à environ .env donc ça ici ça va nous permettre de créer une instance d'environnement pour l'instantcette instance d'environnement elle n'a aucune variable donc on va devoir loader ces variableset pour ça on va utiliser donc cette variable base dir et la concatener pour récupérer lechemin relatif vers ce fichier .env donc ici je vais faire environ.env.readenv donc c'est une
00:03:20 :fonction qui est à l'intérieur de environ.env et on va lui passer en paramètre le chemin doncvers ce fichier .env donc dans le paramètre env file on va concatener base dir avec la chaîne
00:03:31 :de caractère blog et avec la chaîne de caractère .env donc là en fait je fais juste concatenernotre dossier de base qui est le dossier src on va le concatener avec blog et ensuite concatenerle nom du fichier et tout ça on va l'entourer d'une fonction la fonction string puisque
00:03:48 :actuellement en fait ici on va avoir un objet de type path puisqu'on utilise pathlib et ceparamètre il n'aime pas trop les objets de type path donc il faut lui passer une chaîne decaractère donc on va utiliser la fonction string pour entourer tout ça et passer une chaîne de
00:04:00 :caractère à ce paramètre donc ce que ça va faire en fait ici c'est que ça va aller chercher toutesces variables et les mettre dans notre environnement donc on va ensuite pouvoir les utiliser grâce àcette variable env qu'on a créé donc pour ça je vais descendre un petit peu ici et modifier ces
00:04:14 :trois valeurs pour mettre les valeurs qu'on va récupérer depuis ce fichier donc j'enlève la clésecrète ici et je fais tout simplement env et entre parenthèses je mets le nom de la clé doncsecretkey donc ça c'est vraiment le nom qu'on a mis ici secretkey si je mettais test à la place
00:04:28 :on devrait mettre test ici donc là je vais laisser secretkey et on récupère ici le secretkey donclà c'est une chaîne de caractère donc je fais juste env et entre parenthèses le nom de la clépour le debug on va utiliser env.bool et ça ça va nous permettre de récupérer la valeur
00:04:42 :associée et automatiquement de la convertir en boole1 donc là on va récupérer le nom de la clédonc c'est debug donc là encore c'est le nom qu'on a mis ici et avec le bool du coup ça va la convertiren boole1 et ici on peut mettre même une valeur par défaut en deuxième argument donc je pourrais
00:04:56 :dire false comme ça si jamais en fait dans ce fichier on n'a pas défini cette variable debuget bien par défaut il va mettre une valeur de false donc ça peut être pratique comme ça sijamais vous oubliez dans votre environnement de production de mettre cette variable et bien par
00:05:10 :défaut vous aurez le debug qui va être à false. On pourrait faire la même chose bien entendu pourla clé secrète et pour les alert hosts là je vais le mettre uniquement pour le debug. Pour le
00:05:19 :alert host on va cette fois ci utiliser env.list ce qui va nous permettre si jamais on avaitplusieurs éléments ici séparés par une virgule de récupérer tous ces éléments sous la formed'une liste puisque alert host ici comme vous l'avez vu auparavant on avait une liste puisqu'onpeut avoir plusieurs hosts donc plusieurs variables ici qui seraient disponibles. Donc tout ce qu'on
00:05:38 :va faire c'est faire env.list et on va récupérer là encore le nom de la clé donc là j'avais misalert host tout simplement donc je la copie et je la colle ici. On va juste vérifier que tout ça
00:05:47 :marche on va faire un print de notre secret key et on va faire également un print de debug,on va faire un print également du type de debug pour vérifier qu'on a bien le bon type dedonnées et on va faire un print pour finir de aloud host. Donc pour vérifier que tout marche je vais
00:06:04 :ouvrir mon terminal et ici dans le terminal on va lancer notre serveur donc python manage.py runserver et là vous voyez qu'on a bien donc notre clé secrète donc si je reviens un petit peu en hauton a notre clé secrète qui est affichée on a bien la valeur true qui est de type booléen et notre
00:06:19 :liste qui contient ici notre ip locale. Donc ça fonctionne correctement on a bien récupéré toutesles valeurs à partir de ce fichier de settings donc comme je vous disais en fait la seule chosequ'il ne faudra pas oublier de faire c'est de créer ce même fichier sur notre serveur de production
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.