Subjects

All subjects Django Java Python React Spring Boot JavaScript PHP
Sign Up Free
Question 4 of 10 · Django Deployment & DevOps
Interview question

How do you manage environment-specific settings and secrets in Django (django-environ, .env files)? Django में एनवायरनमेंट-विशिष्ट सेटिंग्स और सीक्रेट्स को कैसे मैनेज करें (django-environ, .env फाइलें)?

Answer

Hardcoding secrets (database passwords, API keys, SECRET_KEY) directly in settings.py is a serious security risk, especially if the file is committed to version control, and makes it impossible to use different values across development, staging, and production without editing code.

The standard pattern is to read configuration from environment variables at runtime, using a library like django-environ or python-decouple to parse a local .env file (excluded from git via .gitignore) during development, while production environments inject real environment variables directly through the hosting platform — the application code never changes between environments, only the values it reads.

import environ
env = environ.Env()
environ.Env.read_env()

SECRET_KEY = env('SECRET_KEY')
DEBUG = env.bool('DEBUG', default=False)
DATABASES = {'default': env.db()}

सीक्रेट्स (डेटाबेस पासवर्ड, API कीज़, SECRET_KEY) को सीधे settings.py में हार्डकोड करना एक गंभीर सुरक्षा जोखिम है, खासकर यदि फाइल वर्जन कंट्रोल में कमिट हो जाए।

मानक पैटर्न रनटाइम पर एनवायरनमेंट वेरिएबल्स से कॉन्फिगरेशन पढ़ना है, django-environ जैसी लाइब्रेरी का उपयोग करके स्थानीय .env फाइल को पार्स करते हुए।

import environ
env = environ.Env()
environ.Env.read_env()
SECRET_KEY = env('SECRET_KEY')
DEBUG = env.bool('DEBUG', default=False)

Was this answer clear?