Tabla de Contenido
Introducci贸n
En el desarrollo de aplicaciones, especialmente en entornos de producci贸n, es crucial manejar las configuraciones y secretos de manera segura. La librer铆a python-dotenv facilita la carga de variables de entorno desde un archivo .env
en nuestro proyecto. Esto permite separar la configuraci贸n sensible del c贸digo fuente, mejorando la seguridad y la mantenibilidad de la aplicaci贸n.
驴Qu茅 es un archivo .env?
Un archivo .env
es un archivo de texto plano que contiene pares clave-valor. Su uso principal es almacenar las configuraciones, como credenciales de bases de datos, claves API y otros par谩metros de configuraci贸n que no deber铆an estar expuestos en el c贸digo fuente. Por ejemplo:
1
2
3
DATABASE_URL=postgres://user:password@localhost/db_name
SECRET_KEY=my_secret_key
DEBUG=True
Instalaci贸n
Para comenzar a utilizar python-dotenv
, primero debemos instalar la librer铆a. Podemos hacerlo con el administrador de paquetes pip
:
1
pip install python-dotenv
Uso b谩sico
Cargar variables de entornos
Una vez instalada la librer铆a, podemos cargar las variables de un archivo .env
en nuestra aplicaci贸n con la funci贸n load_dotenv
de la siguiente manera:
import os
from dotenv import load_dotenv
# cargar el archivo .env
load_dotenv()
# Accede a las variables de entorno
database_url = os.getenv("DATABASE_URL")
secret_key = os.getenv("SECRET_KEY")
debug_mode = os.getenv("DEBUG", False) # Valor por defecto si no se encuentra
print(f"Database URL: {database_url}")
print(f"Secret Key: {secret_key}")
print(f"Debug Mode: {debug_mode}")
Cargar la configuraci贸n en un diccionario
Es posible tener todas las configuraciones agrupadas en un diccionario, usando python-dotenv lo hace f谩cil con la funci贸n dotenv_values()
. La funci贸n dotenv_values()
funciona m谩s menos de la misma manera que load_dotenv()
, excepto que no toca el entorno y por ende no es necesario importar la librer铆a os
para obtener las variables de entornos, solo devuelve un dict
con los valores analizados en el archivo .env
. Ejemplo:
-
1 2 3 4 5 6 7
from dotenv import dotenv_values config = dotenv_values() print(config["USUARIO"]) # user1 print(config["DATABASE"]) # store print(config["PORT"]) # 3306
-
.env
1 2 3
USUARIO=user1 DATABASE=store PORT=3306
Consideraciones
Cuando se crea el archivo .env
en el proyecto con las variables necesarias. Aseg煤rate de no incluir este archivo en el control de versiones, como Git, recuerda agregar .env
en el archivo .gitignore
para evitar que se suba con el resto del c贸digo fuente a la plataforma en la nube.