Conexión de FastAPI con SQLite usando SQLModel
Clase 8 de 23 • Curso de FastAPI
Contenido del curso
- 13

Relaciones en FastAPI y SQL Model: Creación y Uso Práctico
18:09 - 14

Relaciones Muchos a Muchos en Bases de Datos con SQLModel
06:39 - 15

Creación y Suscripción de Planes y Clientes en FastAPI
11:58 - 16

Consultas Avanzadas con SQL Model y Filtrado de Estados en FastAPI
07:20 - 17

Validación de Emails Únicos en Bases de Datos con Pydantic y FastAPI
07:28
Para conectar FastAPI con una base de datos real, primero configuraremos una base de datos SQLite utilizando la librería SQLModel, que facilita la integración sin necesidad de escribir SQL. SQLModel combina Pydantic y SQLAlchemy, permitiendo que nuestros modelos se almacenen directamente en bases de datos con una sintaxis simplificada.
¿Cómo instalar y configurar SQLModel?
-
Instalación: Abre la terminal y ejecuta:
pip install sqlmodelTambién es recomendable registrar las dependencias en un archivo
requirements.txt, como SQLModel y FastAPI con sus respectivas versiones. Esto ayuda a instalar todas las dependencias en otros entornos fácilmente. -
Creación del archivo de configuración:
- Crea un archivo
db.py. - Importa las clases
Sessionycreate_enginede SQLModel para gestionar la conexión. - Define las variables para la conexión, como la URL de la base de datos, en este caso
sqlite:///database_name.db.
- Crea un archivo
-
Creación del
engine:- Utiliza
create_enginecon la URL de la base de datos para crear el motor que gestionará las sesiones.
- Utiliza
¿Cómo definir la sesión para la base de datos?
Para manejar las conexiones, define una función get_session en db.py, la cual:
- Crea un contexto que inicia y cierra la sesión automáticamente.
- Facilita el uso de la sesión en varios endpoints de FastAPI.
¿Cómo registrar la sesión como dependencia en FastAPI?
Para que FastAPI use la sesión en sus endpoints:
- Importa
Dependsde FastAPI. - Define una dependencia que gestione la sesión mediante
get_session, facilitando el acceso a la base de datos desde cualquier endpoint.
¿Cómo adaptar los modelos para almacenar datos en la base de datos?
-
Modificación del modelo: Si usas modelos de Pydantic, ajústalos para heredar de
SQLModelen vez deBaseModel. Esto conecta los modelos con la base de datos. -
Creación de tablas:
- En el modelo que representa una tabla, añade
table=Truepara que SQLModel cree automáticamente la tabla en la base de datos. - Hereda los atributos comunes de un modelo base (sin
table=True) para evitar duplicaciones y asegurar que se incluyan todos los campos necesarios.
- En el modelo que representa una tabla, añade
-
Ejemplo de implementación:
- Define un modelo
CustomerBasepara los datos comunes. - Crea un modelo
Customer, que herede deCustomerBasey deSQLModel, contable=Truepara almacenar los registros en la tabla correspondiente.
- Define un modelo
Con esta configuración, los datos se insertarán en la base de datos sin necesidad de escribir SQL directamente. Al definir la dependencia de sesión en FastAPI, cada vez que un endpoint la requiera, FastAPI se conectará a la base de datos automáticamente.