Dotenv para variables de entorno

Trabajar con variables de entorno con Dotenv

← Crud Python - Sqlite Entornos virtuales con Pipenv →
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:

.env
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.

← Crud Python - Sqlite Entornos virtuales con Pipenv →