0Pricing
Django Academy · Lección

Variables de entorno y separación de ajustes

Separe de forma segura la configuración de desarrollo y producción

Variables de entorno y separación de ajustes es una lección gratuita de Django Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Django Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Django Academy incluye 4 lecciones en total.

Partes de esta lección aún no han sido traducidas y se muestran en inglés.

One Settings File Is Risky

A single settings.py with DEBUG on and secrets hardcoded is fine locally but dangerous live. Production needs its own safe configuration. 🔒

Dev and Prod Differ

Local and live environments need different settings: debug, allowed hosts, databases, and email all change between the two.

Why Environment Variables

Secrets like passwords must never sit in code or git. Environment variables inject them at runtime, keeping them out of your repository.

Read with os.environ

Pull a value from the environment with os.environ. Use a fallback so missing local variables do not crash development.

import os
SECRET_KEY = os.environ.get('SECRET_KEY', 'dev-only')

Load a .env File

Tools like python-dotenv load variables from a local .env file, so you do not export them by hand every session.

from dotenv import load_dotenv
load_dotenv()

Never Commit .env

Add .env to your .gitignore. Committing it would leak every secret, defeating the entire reason for using environment variables.

.env
*.pyc

The Settings Package

Split settings into a package: turn settings.py into a folder holding base, dev, and prod modules that share common config.

settings/
  __init__.py
  base.py
  dev.py
  prod.py

Share with base.py

Put everything common in base.py. The dev and prod files import from it, then override only what truly differs.

from .base import *
DEBUG = True

Lock Down prod.py

In prod.py keep DEBUG off and read SECRET_KEY plus ALLOWED_HOSTS from the environment, never from a literal in the file.

from .base import *
DEBUG = False
ALLOWED_HOSTS = os.environ['ALLOWED_HOSTS'].split(',')

Pick the Module

Choose which settings load with the DJANGO_SETTINGS_MODULE variable. Dev points to settings.dev while the server points to settings.prod.

export DJANGO_SETTINGS_MODULE=myproject.settings.prod

Typed Helpers Help

Libraries like django-environ parse env values into booleans, lists, and database URLs, so you avoid messy manual string conversions.

Quick Check

Where should your production SECRET_KEY come from?

Recap

You learned to split settings into base, dev, and prod, keep secrets in environment variables and .env, and select the module per environment. 🎯

Preguntas frecuentes

¿La lección «Variables de entorno y separación de ajustes» es gratis?

Sí — el texto completo de «Variables de entorno y separación de ajustes» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Django Academy, actualiza a CoddyKit PRO. El curso de Django Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Variables de entorno y separación de ajustes»?

Separe de forma segura la configuración de desarrollo y producción Practicas Django Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Django Academy?

No se requiere experiencia previa. Django Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Variables de entorno y separación de ajustes»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Django Academy?

Sí. Cada lección de Django Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Gunicorn como servidor WSGI
  2. Nginx como proxy inverso
  3. WhiteNoise para archivos estáticos
  4. Variables de entorno y separación de ajustes
← Volver a Django Academy