Cómo utilizar el archivo .env en FastAPI

26 set 2023 2 min di lettura
Cómo utilizar el archivo .env en FastAPI
Indice dei contenuti

Introducción

FastAPI es un marco web moderno para crear API con Python 3.7+ basado en sugerencias de tipo estándar de Python. Como muchos otros marcos, FastAPI tiene disposiciones para trabajar con variables de entorno para gestionar la configuración. Almacenar configuraciones en un archivo.env es una práctica común que ayuda a separar la configuración del código de la aplicación, lo que hace que sea más fácil de administrar y más seguro.

En este artículo exploraremos cómo integrar y usar archivos.env en una aplicación FastAPI.

¿Por qué utilizar un archivo.env?

  • Separación de aspectos: Mantenga las configuraciones separadas del código de la aplicación.
  • Seguridad: evite codificar información confidencial en el código fuente.
  • Portabilidad: cambie fácilmente entre diferentes configuraciones según su entorno (desarrollo, pruebas, producción, etc.).

Comenzando con.env en FastAPI

Al igual que otros marcos de Python, FastAPI también utiliza el paquete python-dotenv para cargar archivos `.env` en el entorno del sistema. Luego úselos en la aplicación.

Instale los paquetes necesarios:

Para trabajar con archivos `.env`, usaremos la biblioteca python-dotenv. Instálalo con pip:

pip install fastapi[all] python-dotenv uvicorn

Cree un archivo.env:

Cree un archivo `.env` en la raíz de su proyecto. Por ejemplo:

DB_URL=postgresql://username:password@localhost:5432/mydatabase
 SECRET_KEY=mysecretkey
 DEBUG=True

Lea.env en FastAPI:

Puede cargar el archivo `.env` al comienzo de la aplicación. Consulte el script de Python a continuación que utiliza la función `load_dotenv` del paquete dotenv para cargar variables del archivo `.env` en el entorno del sistema. Después de cargar el archivo.env, el código recupera variables de entorno específicas como "DB_URL", "SECRET_KEY" y "DEBUG" utilizando la función os.getenv.

from fastapi import FastAPI
 import os
 from dotenv import load_dotenv

 app = FastAPI()

 # Load.env file
 load_dotenv()

 DB_URL = os.getenv("DB_URL")
 SECRET_KEY = os.getenv("SECRET_KEY")
 DEBUG = os.getenv("DEBUG") == "True"

Utilice las variables de entorno cargadas:

Ahora que las variables están cargadas, puedes usarlas en tu aplicación.

@app.get("/")
 def read_root():
 return {"DB_URL": DB_URL, "Debug Mode": DEBUG}

Uso avanzado

Uso de entornos con FastAPI Config:

Para organizar y controlar aún más nuestras configuraciones, podemos usar un paquete como pydantic:

pip install pydantic

A continuación, defina una plantilla de configuración:

from pydantic import BaseSettings

 class Settings(BaseSettings):
 DB_URL: str
 SECRET_KEY: str
 DEBUG: bool = False

 class Config:
 env_file = ".env"

Cargar configuraciones:

settings = Settings()

 @app.get("/config/")
 def read_config():
 return {"DB_URL": settings.DB_URL, "Debug Mode": settings.DEBUG}

Con pydantic, las variables de entorno se convierten automáticamente a los tipos correctos, lo que hace que la gestión de la configuración sea más segura.

Anular configuraciones para pruebas

Al escribir pruebas, es posible que desee utilizar configuraciones diferentes. La biblioteca python-dotenv le permite especificar una ruta a su archivo.env, por lo que puede usar un archivo `.env.test` separado para probar:

# For testing, load a different.env file
 load_dotenv(".env.test")

Conclusión

El uso de un archivo .env en una aplicación FastAPI simplifica la gestión de la configuración, mejorando la seguridad y la separación de preocupaciones. Con herramientas adicionales como pydantic, puede imponer la verificación de tipos en las configuraciones para detectar problemas potenciales de manera temprana. Ya sea que esté desarrollando localmente, implementando en producción o ejecutando pruebas, aprovechar los archivos.env facilita la administración de configuraciones específicas del entorno.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.