Home > Backend Development > Python Tutorial > How to load .env in Django Project

How to load .env in Django Project

Barbara Streisand
Release: 2024-11-29 00:15:16
Original
323 people have browsed it

How to load .env in Django Project

I come from a PHP background, mostly using Laravel/Symfony. Recently, I started using Django, and I wanted to reproduce the way environmental variables are provided via a .env file.

I wanted the .env to load once I start the devserver without having to worry about it. Therefore I followed these steps:

Basic Project Setup For Demonstration

Make a basic app (Skip if Django is already set up)

To start, I created a virtual environment, set up a project.

mkdir myproject
cd myproject
python3 -m venv ./venv
echo vencv >> .gitignore
pip install Django
django-admin startproject mysite .
Copy after login

Install python-dotenv (Skip if already done)

pip install python-dotenv
Copy after login

Load .env file

Loading environmental variables from a .env file is simple with python-dotenv:

from dotenv import load_dotenv
load_dotenv()

Copy after login

The question is though is WHERE to put this code. Loading the .env file every time can be tedious. Based on the setup I previously mentioned, my project created the following structure (some files omitted for simplicity):

myproject/
├── mysite/
│   ├── __init__.py
│   ├── asgi.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── .env
Copy after login

As you can see, the mysite directory is loaded as a module. All environmental variables are stored in the .env file. To load them, I added the code to the mysite/__init__.py file:

from dotenv import load_dotenv
load_dotenv()
Copy after login

This ensures that all environmental variables are loaded whenever I run:

python manage.py runserver
Copy after login

Drawbacks

The downside to this approach is that if I make any changes to the .env file, I have to stop and restart the server to reload the environment variables.

The above is the detailed content of How to load .env in Django Project. For more information, please follow other related articles on the PHP Chinese website!

source:dev.to
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template