Contenido del curso
Configuración de Servidores en la Nube para Despliegue
- 6

Cómo elegir recursos de servidor en AWS
03:32 min - 7

Cómo crear cuenta AWS con free tier
07:17 min - 8

Crear una instancia EC2 con Ubuntu en AWS
12:44 min - 9

SSH con llave .pem en Ubuntu AWS
08:41 min - 10

Cómo gestionar Ubuntu con apt y sudo
10:13 min - 11

Cómo DNS convierte tu IP en dominio memorable
13:55 min - 12

Cómo instalar certificados SSL con Certbot
05:16 min
Administración y Optimización de Servidores para Producción
- 13

Cómo clonar Django en servidor con SSH y Deploy Keys
14:41 min - 14

Configurar uWSGI como servicio para Django
14:34 min - 15

Conectar NGINX con uWSGI por proxy reverso
04:33 min - 16

Logs específicos por aplicación en Python
11:49 min - 17

Cómo configurar Sentry en Django
08:54 min - 18

Variables de entorno Django en servidor
04:28 min
Integración de Servicios Complementarios para Aplicaciones Python
Automatización y CI/CD para Despliegues Python
Variables de entorno con python-dotenv
Resumen
Proteger información sensible y adaptar el comportamiento de una aplicación según el entorno donde se ejecuta es una necesidad real en cualquier proyecto. Las variables de entorno resuelven exactamente ese problema, y combinadas con un archivo .env, ofrecen una forma limpia y segura de gestionar configuraciones sin exponer datos en el repositorio.
¿Por qué no deberías guardar configuraciones directamente en el código?
Imagina que tienes una variable llamada app_mode que en tu máquina local debe valer local, pero en producción debe ser production. Si defines ese valor directamente en el código y lo subes al repositorio, cada entorno tendría conflictos al intentar ejecutar comportamientos distintos. La solución es sacar esas configuraciones fuera del código mediante variables de entorno [0:20].
¿Cómo crear una variable de entorno en Linux?
En un sistema Linux se utiliza el comando export seguido del nombre y el valor de la variable [0:38]:
bash export app_mode=local
- Todas las variables de entorno aceptan únicamente valores de tipo string.
- Una vez definida, queda disponible para cualquier proceso que se ejecute en esa sesión de terminal.
¿Cómo leer variables de entorno desde Python?
Python incluye la librería os, que permite acceder al entorno del sistema operativo. Para obtener el valor de una variable se usa os.environ.get() [1:05]:
python import os
app_mode = os.environ.get("app_mode") print(app_mode)
Al ejecutar la aplicación con Uvicorn, el valor local se imprimió dos veces. Esto sucede porque Uvicorn levanta dos workers, es decir, dos procesos de Python independientes que aceptan peticiones. La primera solicitud activa ambos, y cada uno ejecuta el print [1:30].
¿Qué es el archivo .env y por qué facilita la gestión de variables?
Escribir export cada vez que se necesita una variable nueva resulta poco práctico. El archivo .env centraliza todas las variables de entorno en un solo lugar [1:55]:
app_mode=local secret=super_secret
- Puedes definir tantas variables como necesites, una por línea.
- Nunca subas este archivo al repositorio, ya que puede contener contraseñas, tokens o claves de acceso que no deben estar disponibles para todo el equipo.
¿Cómo cargar el archivo .env en Python con python-dotenv?
Para que Python lea automáticamente el archivo .env, se utiliza la librería python-dotenv. Primero hay que instalarla [2:25]:
bash pip install python-dotenv
Es buena práctica guardar la dependencia en el archivo de requerimientos:
python-dotenv==1.0
Dentro del código, se importa la función load_dotenv y se le pasa la ruta del archivo [2:42]:
python from dotenv import load_dotenv import os
load_dotenv(".env")
app_mode = os.environ.get("app_mode") secret = os.environ.get("secret")
print(app_mode) print(secret)
load_dotenv toma todas las variables definidas en .env y las inserta en el entorno del sistema, sin necesidad de ejecutar export manualmente. Al recargar la aplicación, ambas variables se muestran correctamente [3:05].
¿Qué casos prácticos resuelve el uso de .env en producción?
Este patrón tiene aplicaciones directas en escenarios reales:
- Autenticación con servicios externos: si configuras un login con Facebook, los secrets de la aplicación se almacenan en el
.envpara evitar exponerlos. - Conexión a bases de datos: la contraseña del servidor de base de datos en producción se gestiona como variable de entorno, protegiendo la información más crítica.
- Separación de entornos: cada servidor mantiene su propio
.envcon valores adaptados a su contexto, sin modificar una sola línea de código.
Un ejercicio valioso es crear la misma variable tanto con export como dentro del .env y verificar cuál toma prioridad [3:55]. Eso te ayudará a entender dónde hacer cambios cuando necesites ajustar configuraciones rápidamente.
¿Ya probaste qué sucede cuando una variable existe en ambos lugares? Comparte tu resultado y cuéntanos cómo organizas tus variables de entorno en tus proyectos.