Buenas prácticas y convenciones con criterios definidos para crear aplicaciones FastAPI listas para producción, basadas en la experiencia en startups.
fastapi/sqlmodel
SQLModel es una biblioteca de Python para trabajar con bases de datos SQL mediante clases de Python, basada en Pydantic y SQLAlchemy y diseñada para integrarse con FastAPI.
- Estrellas
- 18,447
- Forks
- 893
- Issues abiertos
- 53
- Último commit
- hace 6 días
¿Qué es?
SQLModel permite definir tablas de bases de datos como clases de Python mediante anotaciones de tipos. Una sola clase funciona como modelo de tabla de SQLAlchemy y como modelo de datos de Pydantic, así que no tienes que escribir el mismo esquema dos veces para acceder a la base de datos y validar solicitudes o respuestas.
La biblioteca es una capa ligera sobre Pydantic y SQLAlchemy, y mantiene disponibles las API de ambos. Puedes hacer consultas con una sintaxis basada en select, ejecutar sesiones y usar las funciones de SQLAlchemy subyacentes cuando sea necesario. La creación de tablas se realiza mediante los metadatos estándar de SQLModel, y los ejemplos del proyecto usan SQLite.
SQLModel fue creado por el autor de FastAPI y está diseñado para ser compatible con este. Se instala mediante pip o uv y el proyecto cuenta con licencia MIT.
Funciones clave
- 01Define tablas y modelos de Pydantic con una sola clase de Python mediante anotaciones de tipos.
- 02Ofrece consultas basadas en select y sesiones sobre SQLAlchemy.
- 03Se integra con FastAPI para los modelos de solicitudes y respuestas.
- 04Mantiene acceso completo a las funciones subyacentes de SQLAlchemy y Pydantic.
- 05Ofrece autocompletado en el editor y errores de tipos en línea.
Casos de uso
- Crear un servicio con FastAPI que lea y escriba en una base de datos SQL.
- Reducir la duplicación de definiciones de modelos entre tablas ORM y esquemas de API.
- Migrar una aplicación existente de SQLAlchemy hacia modelos basados en Pydantic.
Inicio rápido
- 1
Instala uv siguiendo la guía de instalación oficial
- 2
Añade SQLModel a tu proyecto
uv add sqlmodel
Temas
Preguntas frecuentes
- ¿Qué es sqlmodel?
- SQLModel es una biblioteca de Python para trabajar con bases de datos SQL mediante clases de Python, basada en Pydantic y SQLAlchemy y diseñada para integrarse con FastAPI. SQLModel permite definir tablas de bases de datos como clases de Python mediante anotaciones de tipos. Una sola clase funciona como modelo de tabla de SQLAlchemy y como modelo de datos de Pydantic, así que no tienes que escribir el mismo esquema dos veces para acceder a la base de datos y validar solicitudes o respuestas.
- ¿sqlmodel es gratuito? ¿Qué licencia tiene?
- sqlmodel es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿sqlmodel sigue mantenido?
- Mantenimiento activo. El último commit de sqlmodel fue el 15 oct 2026.
- ¿Para qué puedo usar sqlmodel?
- Crear un servicio con FastAPI que lea y escriba en una base de datos SQL. Reducir la duplicación de definiciones de modelos entre tablas ORM y esquemas de API. Migrar una aplicación existente de SQLAlchemy hacia modelos basados en Pydantic.
- ¿Cómo se instala sqlmodel?
- Instala uv siguiendo la guía de instalación oficial Añade SQLModel a tu proyecto: uv add sqlmodel
- ¿Dónde consigo sqlmodel?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/fastapi/sqlmodel
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
ORM de TypeScript para Node.js que ofrece acceso a bases de datos con seguridad de tipos en PostgreSQL, MySQL, SQLite, MongoDB y otras bases de datos.
Un ORM completo para Go que asigna structs a tablas de bases de datos y admite asociaciones, hooks, transacciones y migraciones.
ORM para Node.js escrito en TypeScript, basado en los patrones Data Mapper, Unit of Work e Identity Map, compatible con SQL y MongoDB.
Un framework web de Python para crear APIs con anotaciones de tipos estándar, validación automática, documentación OpenAPI y alto rendimiento.
Una biblioteca de Python que restringe las salidas de los LLM durante la generación para que coincidan con un tipo, una expresión regular, un esquema JSON o una gramática determinados.