ExamHoot

Environment Variables and Secret Management: Best practices in settings.py

import os
from pathlib import Path

BASE_DIR = Path(__file__).resolve().parent.parent

SECRET_KEY = os.environ.get('SECRET_KEY', 'unsafe-default-key')
DEBUG = os.environ.get('DEBUG', 'False') == 'True'
ALLOWED_HOSTS = os.environ.get('ALLOWED_HOSTS', 'localhost').split(',')
  1. Use os.environ to load SECRET_KEY, DEBUG, and ALLOWED_HOSTS from environment variables, never hardcoding secrets. Use python-dotenv for .env file management

  2. Hardcoding SECRET_KEY and DEBUG values in settings.py is acceptable as long as the file is in .gitignore

  3. Environment variables should only be used for non-sensitive settings like DEBUG and ALLOWED_HOSTS

  4. Django automatically loads environment variables from .env files without any additional configuration

Show answer & explanation

Correct answer

Use os.environ to load SECRET_KEY, DEBUG, and ALLOWED_HOSTS from environment variables, never hardcoding secrets. Use python-dotenv for .env file management

Explanation

Environment variables should be used for sensitive data (SECRET_KEY, database passwords) and environment-specific settings (DEBUG, ALLOWED_HOSTS). Never hardcode secrets or commit them to version control. Use a .env file with python-dotenv or similar tools.

Written by ExamHoot EditorialPublished · Updated

All 30 Django Project Structure and Setup questions

  1. 1.What is the primary purpose of the manage.py file in a Django project?
  2. 2.Which file in a Django project is used to store project-level settings and configurations?
  3. 3.What does the __init__.py file do in a Django app directory?
  4. 4.Which command is used to create a new Django app within a project?
  5. 5.What is the purpose of the models.py file in a Django app?
  6. 6.Where should static files like CSS and JavaScript be placed in a Django project?
  7. 7.What is the role of the urls.py file in a Django project?
  8. 8.Which file is responsible for WSGI application setup in a Django project?
  9. 9.What command should you run after creating a new Django app to register it in the project?
  10. 10.Where are HTML templates typically stored in a Django app?
  11. 11.Scenario:
  12. 12.What is the correct sequence of steps to initialize a Django project?
  13. 13.Hari is configuring a Django project with multiple databases.
  14. 14.Code-based:
  15. 15.What is the purpose of the apps.py file in a Django app?
  16. 16.Scenario:
  17. 17.Code-based:
  18. 18.What is the purpose of the admin.py file in a Django app?
  19. 19.Hari is creating a Django project with custom middleware.
  20. 20.Code-based:
  21. 21.Django Project Structure:
  22. 22.Django Project Directory Layout:
  23. 23.Django Apps and Project Configuration:
  24. 24.Settings.py Configuration:
  25. 25.Django Database Configuration:
  26. 26.Middleware Configuration:
  27. 27.Static and Media Files:
  28. 28.Environment Variables and Secret Management:
  29. 29.URL Configuration and URL Routing:
  30. 30.INSTALLED_APPS Configuration: