DÍA 04Configuración y conexión segura · Python Backend y APIs para Datos

Lee la conexión local desde variables de entorno y evita publicar contraseñas.

Día 4 17 minInicial

Guardar la configuración fuera del código

Objetivos

Vas a separar la configuración de cada computadora de los archivos que puedes publicar en Git.

Concepto

Una variable de entorno es un valor que el sistema entrega al proceso al iniciar un programa. Sirve para cambiar host, usuario o contraseña según el entorno sin editar el código. Una contraseña es un secreto: no debe aparecer en una captura, en un commit ni en el navegador.

Para el ejercicio local puedes usar un archivo .env que lee python-dotenv; ese archivo se agrega a .gitignore. .env.example sí se comparte porque contiene solo nombres y valores ficticios. Un archivo .env no convierte una app pública en segura por sí mismo y nunca debe subirse al repositorio.

Ejemplo

Instala el lector de .env con py -m pip install python-dotenv. En .env.example documentas qué valores deben crear localmente:

DB_HOST=127.0.0.1
DB_PORT=3306
DB_NAME=sakila
DB_USER=sakila_reader
DB_PASSWORD=escribe-tu-clave-local

En .gitignore incluye .env y .venv/. En Python, load_dotenv() lee el archivo local y os.getenv recupera una variable:

import os
 
from dotenv import load_dotenv
 
load_dotenv()
db_host = os.getenv("DB_HOST", "127.0.0.1")
db_password = os.getenv("DB_PASSWORD")
if not db_password:
    raise RuntimeError("Configura DB_PASSWORD en tu entorno local")

El mensaje de error nombra la variable que falta, nunca muestra su valor. En el capstone del curso el archivo de ejemplo viene incluido y el .env real debe crearlo cada estudiante.

Práctica guiada

  1. Copia .env.example como .env en tu computadora.
  2. Reemplaza el texto de contraseña ficticia por una clave local.
  3. Comprueba que .env aparece en .gitignore antes de ejecutar git status.

Reto

Completa una función que exija DB_HOST, DB_USER y DB_PASSWORD. Si falta alguna, debe señalar solo los nombres ausentes.

Intenta el reto antes de consultar las pistas.

Quiz

1. ¿Qué archivo puede guardarse en el repositorio como ejemplo?
2. ¿Qué debe hacer el código si no existe DB_PASSWORD?
3. ¿Qué aporta load_dotenv() en el entorno local?

Comprobación

La contraseña ya vive fuera del código versionado. Ahora convertirás esos valores en una conexión reutilizable y una sesión por solicitud.

TU PROGRESO

Cargando estado…