Introducción
FastAPI ha aumentado rápidamente en popularidad como un marco de aplicaciones web de alto rendimiento y fácil de usar para construir API con Python. Cuando se utiliza junto a una base de datos relacional, FastAPI se puede usar para crear aplicaciones potentes y escalables. Este guía le guiará a través del proceso de configuración de una aplicación FastAPI con una base de datos relacional en una máquina Ubuntu 24.04. cubriremos todo, desde la instalación de las herramientas necesarias hasta la configuración de la base de datos y la creación de puntos finales de API.
Usar FastAPI con la Base de Datos PostgreSQL
- Configuración del Entorno de Python
- Crear y Activar Entorno Virtual
- Instalar y Configurar PostgreSQL
- Crear Aplicación de FastAPI
- Instalar bibliotecas requeridas
- Ejecutar aplicación de Python
- Pruebas de puntos finales de la aplicación FastAPI
Prerrequisitos
Antes de seguir los pasos de este tutorial, necesitas:
-
Un servidor que ejecute Ubuntu junto con un usuario no root que tenga privilegios de sudo y una cortina activa. Para obtener instrucciones sobre cómo configurar esto, elija su distribución de este listado 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 repaso a la línea de comandos, puede visitar esta guía sobre Introducción a la línea de comandos de Linux.
-
Ejecute
sudo apt-get update
en la terminal de Ubuntu para asegurarse de 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 que actualices 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 – Configuración del Entorno de Python
Ubuntu 24.04 trae Python 3 por defecto. Abre el terminal y ejecuta el siguiente comando para comprobar la instalación de Python 3:
Si Python 3 ya está instalado en tu equipo, este comando devolverá la versión actual de la instalación de Python 3. En caso de que no esté instalado, puedes ejecutar el siguiente comando y obtener la instalación de Python 3:
A continuación, necesitarás instalar los instaladores de paquetes pip
y dev
en tu sistema. Ejecuta el siguiente comando en el terminal:
En este tutorial, utilizaremos PostgreSQL como nuestra base de datos relacional. Para interactuar con la base de datos PostgreSQL, necesitarás instalar el libpq-dev
utilizando el siguiente comando:
Paso 2 – Crear y activar el entorno virtual
Si estás utilizando una versión de Ubuntu < 24.04, no necesitas crear un entorno virtual. Puedes saltarte al siguiente paso.
El siguiente paso es crear un entorno virtual dentro de tu instalación de Ubuntu para aislar paquetes de Python de tu entorno de sistema. Para hacer esto, ve a tu directorio de trabajo y ejecuta el siguiente conjunto de comandos:
Este comando creará un nuevo entorno virtual en un directorio llamado fastapi-env
. Tendrá su propio conjunto de paquetes de Python dedicados, aislados de otros proyectos.
Para asegurarte de que los paquetes que instales a partir de este momento se instalen dentro de este entorno aislado, necesitas activarlo ejecutando:
Al ejecutar, notarás que el prompt de terminal se antepone con el nombre de tu entorno virtual como este:
Output(fastapi-env) ubuntu@user:
Paso 3 – Instalar y configurar PostgreSQL
El siguiente paso es instalar PostgreSQL (o cualquier base de datos relacional de tu elección).
Ahora, es hora de iniciar y habilitar el servicio de PostgreSQL dentro de tu entorno virtual.
Puedes verificar el estado del servicio de PostgreSQL ejecutando sudo systemctl status postgresql
. Una vez que el servicio esté habilitado, se inicia automáticamente al arrancar el sistema.
Para instalar y usar PostgreSQL con FastAPI, necesitas instalar un par de cosas:
asyncpg
: Este es un controlador asíncrono de PostgreSQL que permite a FastAPI interactuar con una base de datos PostgreSQL.SQLAlchemy
: Esta es una herramienta ORM que te ayuda a administrar esquemas de base de datos y consultas como código Python en lugar de escribir SQL puro.databases
: Esta es una biblioteca de base de datos para operaciones asíncronas necesarias porSQLAlchemy
para trabajar asíncronamente con FastAPI.
Para instalar estos elementos, ejecuta el siguiente comando consolidado:
Después, cree una base de datos de Postgres y un usuario con los privilegios requeridos.
Paso 4 – Crear Aplicación de Python de Ejemplo
Necesita una aplicación de Python ejecutable que acceda a su base de datos a través de FastAPI. Si no tiene una aplicación de Python en ejecución, puede crear rápidamente una mediante estos pasos:
Cree un nuevo archivo de Python llamado postgres_db.py
en su directorio de proyecto.
En el editor de texto, escribirá lógica para crear la conexión de base de datos y crear una tabla dentro de la base de datos. En este ejemplo, crearemos una conexión a la base de datos PostgreSQL usando el paquete databases
y definiremos la estructura de una tabla books
usando SQLAlchemy
.
Guarde y cierre el archivo.
A continuación, cree un main.py
dentro del mismo directorio.
Escriba la lógica principal de su aplicación en este archivo:
Este código utiliza FastAPI para escribir entradas de libro nuevos en la base de datos PostgreSQL y obtener la colección de libros de ella.
Paso 5 – Instalar bibliotecas requeridas
En su aplicación de Python, referencia varias bibliotecas y paquetes. Antes de ejecutar la aplicación, asegúrese de instalar las bibliotecas necesarias.
Paso 6 – Ejecutar aplicación de Python
Ahora es hora de ejecutar la aplicación que has creado.
uvicorn
es un Interfaz de Puerta de Servidor Asíncrono (ASGI) que se utiliza para servir aplicaciones FastAPI. Usar uvicorn
es una forma preferida para ejecutar una aplicación FastAPI ya que FastAPI es un framework web asíncrono en sí mismo.
Si el comando anterior se ejecuta sin encontrar un error, entonces verás un salida similar a la siguiente:
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 [XXXX] using StatReload
INFO: Started server process [YYYY]
INFO: Waiting for application startup.
INFO: Application startup complete.
En un navegador web, navega a http://127.0.0.1:8000
para ver la salida de la consulta.
Paso 7 [OPCIONAL] – Prueba las Endpoints
Puedes probar las endpoint definidas en tu main.py
(es decir, POST
y GET
) enviando solicitudes HTTP al servidor que se ejecuta en http://127.0.0.1:8000
.
De manera similar, puedes hacer una llamada GET
al mismo servidor para recuperar la lista de libros presentes en tu base de datos Postgres.
Conclusión
En este tutorial, pasaste por el proceso de configuración de una aplicación simple de FastAPI que interactúa con una base de datos PostgreSQL. Estos pasos también son beneficiosos para aplicaciones de AI, especialmente cuando necesitas construir una API web para interactuar con tus modelos de AI o gestionar datos relacionados con tus procesos de AI. Con esta base en lugar, ahora puedes construir y expandir tus proyectos de FastAPI.
Mantén la atención para más artículos sobre cómo trabajar con FastAPI.
Source:
https://www.digitalocean.com/community/tutorials/use-fastapi-with-relationaldb-ubuntu