Archivo .env para las variables de entorno en Python

WHAT TO KNOW - Sep 10 - - Dev Community

<!DOCTYPE html>





Archivo .env para Variables de Entorno en Python

<br> body {<br> font-family: sans-serif;<br> line-height: 1.6;<br> }</p> <div class="highlight"><pre class="highlight plaintext"><code>h1, h2, h3 { margin-top: 2em; } code { background-color: #f0f0f0; padding: 0.2em; border-radius: 3px; font-family: monospace; } pre { background-color: #f0f0f0; padding: 1em; border-radius: 3px; overflow-x: auto; } img { max-width: 100%; display: block; margin: 1em auto; } </code></pre></div> <p>



Archivo .env para Variables de Entorno en Python



Introducción


Las variables de entorno son una forma fundamental de configurar aplicaciones en cualquier lenguaje de programación, y Python no es la excepción. Estas variables almacenan información sensible, como claves de API, credenciales de bases de datos o rutas de archivos, que no deberían incluirse directamente en el código fuente. El archivo .env surge como una práctica común para gestionar estas variables de manera eficiente y segura.


¿Por qué usar un archivo .env?


Utilizar un archivo .env para las variables de entorno ofrece numerosos beneficios:
  • Seguridad: Evita la exposición de información confidencial en el código fuente.
  • Organización: Centraliza la configuración de la aplicación en un solo lugar.
  • Flexibilidad: Permite ajustar la configuración de forma independiente para diferentes entornos (desarrollo, prueba, producción).
  • Facilidad de uso: Permite cargar las variables de entorno de manera sencilla en el entorno de ejecución.

    Instalación y Uso

    Para trabajar con archivos .env en Python, se requiere una biblioteca externa llamada "python-dotenv". Se instala fácilmente mediante pip:
pip install python-dotenv

  1. Crear el archivo .env

Crea un archivo llamado .env en la raíz de tu proyecto. Cada línea de este archivo debe contener una variable de entorno en el formato NOMBRE_DE_LA_VARIABLE=VALOR. Por ejemplo:
DATABASE_URL=postgresql://user:password@host:port/database
API_KEY=tu_clave_api
DEBUG=True

  1. Cargar las variables de entorno

Importa la biblioteca dotenv y usa la función load_dotenv() para cargar las variables desde el archivo .env en el entorno actual:
from dotenv import load_dotenv
import os

# Cargar las variables de entorno
load_dotenv()

# Acceder a las variables de entorno
database_url = os.getenv('DATABASE_URL')
api_key = os.getenv('API_KEY')
debug = os.getenv('DEBUG')

print(f"Base de datos: {database_url}")
print(f"API Key: {api_key}")
print(f"Modo Debug: {debug}")

  1. Ignorar el archivo .env en el control de versiones

Es fundamental agregar el archivo .env a tu archivo .gitignore para evitar que se publique en el repositorio de código fuente. Esto previene la exposición accidental de las variables de entorno.
# Ignorar el archivo .env
.env

  1. Variables de entorno específicas para el entorno

Para diferentes entornos (desarrollo, pruebas, producción), se pueden crear archivos .env separados y cargar el archivo correspondiente según sea necesario. Por ejemplo, puedes tener un archivo .env.development y otro .env.production, cada uno con la configuración específica para ese entorno.
import os
from dotenv import load_dotenv

# Cargar las variables de entorno para el entorno actual
env_file = os.path.join(os.path.dirname(__file__), f".env.{os.environ.get('ENV', 'development')}")
load_dotenv(dotenv_path=env_file)

# Acceder a las variables de entorno
database_url = os.getenv('DATABASE_URL')
# ...


Ejemplos Prácticos



Ejemplo 1: Conexión a una base de datos


from dotenv import load_dotenv
import os
import psycopg2

load_dotenv()

# Obtener las credenciales de la base de datos desde el archivo .env
database_url = os.getenv('DATABASE_URL')

# Establecer la conexión a la base de datos
conn = psycopg2.connect(database_url)

# Ejecutar consultas
cursor = conn.cursor()
cursor.execute("SELECT * FROM my_table")
results = cursor.fetchall()

# Cerrar la conexión
cursor.close()
conn.close()


Ejemplo 2: Utilizar una API


from dotenv import load_dotenv
import os
import requests

load_dotenv()

# Obtener la clave de la API desde el archivo .env
api_key = os.getenv('API_KEY')

# Realizar una solicitud a la API
url = 'https://api.example.com/data'
headers = {'Authorization': f'Bearer {api_key}'}
response = requests.get(url, headers=headers)

# Procesar la respuesta
if response.status_code == 200:
  data = response.json()
  # ...
else:
  print(f"Error: {response.status_code}")




Conclusión



El archivo .env es una herramienta fundamental para gestionar las variables de entorno en proyectos de Python. Su uso proporciona numerosos beneficios como la seguridad, la organización y la flexibilidad en la configuración. Asegúrate de seguir las mejores prácticas al usar archivos .env, como ignorarlos en el control de versiones y crear archivos específicos para cada entorno.

Imagen de un archivo .env


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player