Introducción
Cuando se desarrollan aplicaciones en Python, FastAPI destaca como una opción de primer nivel para construir soluciones de alto rendimiento. Ofrece velocidad, simplicidad y soporte para programación asíncrona, lo que lo hace ideal para desarrollar aplicaciones modernas y escalables.
En este tutorial, le guiaremos a través del proceso de configuración de una aplicación FastAPI con una base de datos NoSQL. Cuando se trata de almacenar y administrar datos, las bases de datos NoSQL ofrecen flexibilidad y escalabilidad, lo que las hace un gran ajuste para aplicaciones que necesitan manejar estructuras de datos diversas y complejas.
Prerrequisitos
Antes de comenzar, necesitará asegurarse de tener lo siguiente:
-
Un servidor ejecutando Ubuntu junto con un usuario no root que tenga privilegios de sudo y una cortina activa. Para obtener orientación sobre cómo configurar esto, por favor elija su distribución de la lista y siga nuestra guía de configuración inicial del servidor. Asegúrese de trabajar con una versión compatible de Ubuntu.
-
Familiaridad con la línea de comandos de Linux. Para una introducción o recuperación de la línea de comandos, puede visitar esta guía sobre primer contacto con la línea de comandos de Linux.
-
Ejecute
sudo apt-get update
en el terminal de Ubuntu para asegurar que su sistema tenga las últimas versiones y actualizaciones de seguridad para el software disponible en los repositorios configurados en su sistema.
Estas instrucciones son válidas para las versiones más recientes de Ubuntu: Ubuntu 24.04, Ubuntu 22.04 y Ubuntu 20.04. Si estás utilizando una versión de Ubuntu <= 18.04, te recomendamos actualizar a una versión más actualizada ya que Ubuntu ya no proporciona soporte para estas versiones. Esta colección de guías te ayudará a actualizar tu versión de Ubuntu.
Paso 1 – Configurar el Entorno de Python en tu Máquina
A lo largo de este tutorial, utilizaremos el paquete python3
para ejecutar comandos. Las últimas versiones de Ubuntu vienen con la instalación de Python 3, así que para verificar su instalación, ejecuta el siguiente comando:
En caso de que esto devuelva un error, puedes instalar/reinstalar el paquete ejecutando:
A continuación, necesitas instalar pip
para instalar paquetes de Python y sus dependencias de manera segura.
Paso 2 – Crear Entorno Virtual
Si estás utilizando una versión de Ubuntu < 24.04, no necesitas crear un entorno virtual, pero es una buena práctica separar las dependencias de tu proyecto.
A partir de Python 3.11 y pip 22.3, hay una nueva PEP 668 que establece la marcación de entornos base de Python como “gestionados externamente”, lo que significa que no podrás instalar correctamente paquetes con pip
a menos que trabajes dentro de un entorno virtual.
En este paso, crearás un entorno virtual para tu proyecto que aislará las dependencias de tu proyecto para evitar conflictos potenciales entre diferentes versiones de paquetes. Ejecuta el siguiente conjunto de órdenes en la terminal:
Esto instalará el paquete requerido venv
necesario para crear un entorno virtual.
Este comando creará un entorno virtual fastapi-env
dentro de tu directorio de trabajo. Para comenzar a trabajar dentro de este entorno, necesitas activarlo.
Después de ejecutar correctamente la orden, verás que la提示 de la terminal se precede así:
(fastapi-env) user@machine:~$
Ahora, puedes empezar a instalar las dependencias requeridas en este entorno virtual.
Paso 3 – Instalar bibliotecas y paquetes requeridos
En este paso, instalarás algunos paquetes y bibliotecas que son necesarios para seguir este tutorial correctamente.
Vamos a empezar instalando fastapi
, que es necesario para construir su aplicación de FastAPI, y uvicorn
, que es necesario para ejecutar la aplicación de FastAPI.
En este tutorial, utilizaremos MongoDB como base de datos NoSQL. Para interactuar con MongoDB desde dentro de su FastAPI, necesita instalar motor
, que es un controlador asíncrono de Python para MongoDB.
Paso 4 – Instalar y Configurar MongoDB en Ubuntu
Para instalar MongoDB en su máquina Ubuntu, ejecute en terminal el conjunto de comandos siguiente:
Al ejecutar correctamente esto, devuelve el parámetro echo. Ahora, haga un quick:
Esto asegurará que obtenga las últimas actualizaciones después de configurar las claves de MongoDB.
Después, necesitará instalar una dependencia de openssl
en su sistema, que es necesario para la instalación de MongoDB.
Al ejecutar, se le pedirá que reinicie los servicios. Después de reiniciar, instale MongoDB usando el siguiente comando:
Inicie y active los servicios de MongoDB:
Puede ver el estado del servicio de MongoDB y probar la conexión ejecutando los siguientes comandos:
Paso 5 – Crear Aplicación FastAPI
El siguiente paso es crear una aplicación FastAPI. En tu directorio de trabajo, crea un archivo database.py
:
Esto abre un editor de texto vacío. Escribe aquí tu lógica de conexión a la base de datos.
Suponiendo que la mycollection
de mydatabase
está poblada con algún tipo de datos, ahora creas un main.py
que contiene la lógica de tu aplicación. En la siguiente aplicación FastAPI, se establece una conexión a la base de datos usando database.py
se definen las rutas para las predicciones por AI. Usando estas rutas, se validan las entradas.
En el editor de texto, escribe la lógica:
Aquí hay un resumen de lo que hace esta aplicación:
- Modelo de Regresión Lineal de sklearn: Este modelo predice una salida basada en una sola característica de entrada.
- Datos de Entrada de Modelo de Pydantic: Esto define la estructura de entrada esperada para el punto final de predicción. En este caso, es un
float
. - Rutas de MongoDB: Las rutas
/items/
yPOST /items/
le permiten recuperar y insertar elementos en su colección de MongoDB.
Paso 6 – Ejecutar Aplicación de FastAPI
Para ejecutar correctamente esta aplicación, necesita instalar las bibliotecas y paquetes utilizados en la aplicación.
Ahora, use el siguiente comando para ejecutar esta aplicación:
La salida de este comando será:
OutputINFO: Will watch for changes in these directories: ['/path/to/your/project']
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [XXXXX] using statreload
INFO: Started server process [XXXXX]
INFO: Waiting for application startup.
INFO: Application startup complete.
FastAPI ha generado automáticamente una documentación interactiva de API utilizando Swagger UI. Puede acceder a ella navegando a http://127.0.0.1:8000/docs
.
Puede utilizar herramientas como curl
o Postman para llamar al punto final que predice un valor basado en su entrada.
curl -X POST "http://127.0.0.1:8000/predict/" -H "Content-type: application/json" -d '{"feature": 3}'
Paso 7 [OPCIONAL] – Ejecutar Aplicación Utilizando Docker Compose
Puede contenedorizar su aplicación y ejecutarla usando docker-compose
. Contenedorizar su aplicación simplifica el proceso de deploy por hacer que su aplicación sea más fácil de deployar, escalar y mantener. Para definir su aplicación como un Dockerfile, siga los pasos mencionados en Deploy FastAPI Application using Docker Compose.
Conclusión
En este tutorial, aprendió cómo configurar exitosamente una aplicación FastAPI con MongoDB, creando una simple app basada en AI capaz de almacenar y recuperar predicciones de entrada.
La combinación de FastAPI y una base de datos NoSQL ofrece un entorno poderoso y flexible para construir y escalar aplicaciones basadas en AI.
Source:
https://www.digitalocean.com/community/tutorials/set-up-fastapi-app-with-nosql-db