En mi último proyecto personal he necesitado almacenar la clave de una API de forma segura. La forma más recomendable de hacerlo parece ser almacenarlas como variables de entorno. Dado que almacenar multitud de variables de entorno de distintos proyectos en mi máquina resulta un engorro, he dado con una alternativa sencilla con la que manejar esta situación.
La solución pasa por utilizar el módulo python-dotenv, que da soporte a nuestro código para utilizar variables almacenadas en un archivo .env independiente como si se trataran de variables de entorno habituales.
El proceso es muy sencillo...
En primer lugar creamos un archivo .env en el que almacenamos las variables:
# Definimos las variables en el archivo .env VARIABLE1 = "Valor 1" VARIABLE2 = "Valor 2"
Este archivo puede ser creado tanto en la carpeta raíz como en otra ubicación dentro de nuestro proyecto.
Importamos el módulo dotenv, y en concreto la función load_dotenv en nuestro proyecto. También tendremos que importar el módulo os para importar las variables de entorno una vez cargado el contenido del .env:
from dotenv import load_dotenv import os
Dado que no es un módulo nativo de Python, requiere ser instalado por medio de Pip, con el comando pip install python-dotenv.
La función load_dotenv() carga las variables al programa como variables de entorno. Haciendo uso del módulo os podemos recuperar sus valores y asignárselos a variables dentro del proyecto:
# Cargamos las variables del archivo como variables de entorno. load_dotenv() # Se almacena el valor "Valor 1" de la primera variable. VARIABLE1 = os.getenv("VARIABLE1") # Otra forma de recuperar el valor de la variable. VARIABLE2 = os.environ.get("VARIABLE2")
Si el archivo .env no se encuentra en la misma ruta en la que se ejecuta el código, debemos definir la ubicación del archivo:
load_dontenv(path="ruta/.env")
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3