Maison >développement back-end >Tutoriel Python >Comment charger .env dans le projet Django
Je viens d'un milieu PHP, utilisant principalement Laravel/Symfony. Récemment, j'ai commencé à utiliser Django, et je souhaitais reproduire la manière dont les variables d'environnement sont fournies via un fichier .env.
Je voulais que le .env se charge une fois que j'ai démarré le serveur de développement sans avoir à m'en soucier. J'ai donc suivi ces étapes :
Pour commencer, j'ai créé un environnement virtuel, mis en place un projet.
mkdir myproject cd myproject python3 -m venv ./venv echo vencv >> .gitignore pip install Django django-admin startproject mysite .
pip install python-dotenv
Le chargement de variables d'environnement à partir d'un fichier .env est simple avec python-dotenv :
from dotenv import load_dotenv load_dotenv()
La question est cependant de savoir OÙ mettre ce code. Charger le fichier .env à chaque fois peut être fastidieux. Sur la base de la configuration que j'ai mentionnée précédemment, mon projet a créé la structure suivante (certains fichiers omis pour plus de simplicité) :
myproject/ ├── mysite/ │ ├── __init__.py │ ├── asgi.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── .env
Comme vous pouvez le constater, le répertoire monsite est chargé en tant que module. Toutes les variables d'environnement sont stockées dans le fichier .env. Pour les charger, j'ai ajouté le code dans le fichier mysite/__init__.py :
from dotenv import load_dotenv load_dotenv()
Cela garantit que toutes les variables environnementales sont chargées chaque fois que j'exécute :
python manage.py runserver
L'inconvénient de cette approche est que si j'apporte des modifications au fichier .env, je dois arrêter et redémarrer le serveur pour recharger les variables d'environnement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!