How To: Environment Variables In Django

Django

Environment variables are essential for keeping sensitive information like API keys, passwords, and secret keys safe. Here's a straightforward guide to managing them effectively in your Django projects.

Step-by-Step Guide

1. Install Django Environ

Run the following command to install django-environ:

pip install django-environ

2. Import Environ in settings.py

Add this import at the top of your settings.py file:

import environ

3. Initialize Environment Variables

Initialize environment variables in settings.py right after the import:

# Initialize environment variables
env = environ.Env()
environ.Env.read_env()

4. Create a .env File

Create a .env file in the same directory as settings.py. This file will store your sensitive data.

5. Add Your Secrets to .env

Declare your sensitive data in the .env file without using quotes. For example:

SECRET_KEY=h^z13$qr_s_wd65@gnj7a=xs7t05$w7q8!x_8zsld#
DATABASE_NAME=postgresdatabase
DATABASE_USER=alice
DATABASE_PASS=supersecretpassword

6. Add .env to .gitignore

To prevent your .env file from being pushed to version control, add it to your .gitignore file:

# Ignore .env files
.env

7. Update settings.py

Replace sensitive information in settings.py with calls to the environment variables:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': env('DATABASE_NAME'),
        'USER': env('DATABASE_USER'),
        'PASSWORD': env('DATABASE_PASS'),
    }
}

SECRET_KEY = env('SECRET_KEY')

Conclusion

Following these steps ensures your sensitive data stays secure and out of your version control system. Proper management of environment variables is a critical part of secure Django development.