zero2hero Página del curso →

Temario · Curso asincrónico

FastAPI + SQLModel

Construye APIs profesionales con Python siguiendo las guías oficiales de FastAPI y SQLModel. Ocho sesiones grabadas, una nueva cada lunes, y un proyecto de práctica en cada una.

Bloque 1 · Sesiones 1 a 4

FastAPI

De la primera ruta a una API modular, con validación, autenticación y pruebas.

  1. 01 Lunes 14 de septiembre

    Primeros pasos con FastAPI

    • Instalación, la app y la primera ruta
    • Path parameters y query parameters
    • Tipos, conversión y validación automática
    • Documentación interactiva: /docs, /redoc y OpenAPI
    • Estructura mínima de un proyecto

    Proyecto API de catálogo de cursos, solo lectura, con filtros por query.

    @app.get("/cursos/{slug}")
  2. 02 Lunes 21 de septiembre

    Datos de entrada y salida

    • Request body con modelos Pydantic
    • Validaciones con Query, Path y Body (Annotated)
    • response_model: modelos de entrada y de salida
    • Códigos de estado y manejo de errores con HTTPException
    • Formularios y archivos

    Proyecto CRUD de tareas en memoria con validación completa.

    async def crear(tarea: TareaIn) -> TareaOut
  3. 03 Lunes 28 de septiembre

    Dependencias y seguridad

    • Sistema de dependencias: Depends y sub-dependencias
    • OAuth2 con password flow y tokens JWT
    • Hash de contraseñas y usuario actual
    • Proteger rutas y manejar sesiones expiradas

    Proyecto Registro, login y rutas protegidas para la API de tareas.

    user: Annotated[User, Depends(get_current_user)]
  4. 04 Lunes 5 de octubre

    Proyectos que crecen

    • Bigger Applications: APIRouter, paquetes y prefijos
    • Middleware y CORS
    • Background tasks y archivos estáticos
    • Pruebas con TestClient y pytest

    Proyecto La API de tareas reorganizada en módulos, con pruebas automáticas.

    app.include_router(tareas.router, prefix="/tareas")

Bloque 2 · Sesiones 5 a 8

SQLModel

Bases de datos con Python: modelos, consultas, relaciones y la integración final con FastAPI.

  1. 05 Lunes 12 de octubre

    Modelos y tablas

    • Qué es SQLModel: SQLAlchemy + Pydantic en una sola clase
    • Modelos con table=True, engine y create_all
    • Crear filas, sesiones e IDs automáticos
    • select y where; índices para consultas rápidas

    Proyecto La base de héroes del tutorial oficial, en SQLite.

    class Hero(SQLModel, table=True)
  2. 06 Lunes 19 de octubre

    Leer, actualizar y borrar

    • Leer una fila: first, one y get
    • limit y offset: paginación
    • update y delete dentro de la sesión
    • Estructura del código: modelos, engine y app en módulos

    Proyecto Inventario con consultas, filtros y paginación.

    session.exec(select(Hero).offset(20).limit(10))
  3. 07 Lunes 26 de octubre

    Relaciones entre tablas

    • Foreign keys y JOIN
    • Relationship attributes y back_populates
    • Uno a muchos y muchos a muchos con link model
    • Cascade delete y ondelete

    Proyecto Equipos y héroes; después, pedidos y productos.

    teams: list[Team] = Relationship(back_populates="heroes")
  4. 08 Lunes 2 de noviembre

    FastAPI + SQLModel: la API completa

    • Modelos múltiples: Base, Create, Public y Update
    • La sesión de base de datos como dependencia
    • CRUD completo con paginación
    • Pruebas con una base de datos de prueba
    • Preparar el proyecto para desplegarlo

    Proyecto final Tu API completa con base de datos, autenticación y pruebas, lista para producción.

    SessionDep = Annotated[Session, Depends(get_session)]

Antes de empezar

  • Bases de Python: funciones, clases y tipos.
  • Python 3.10 o superior, un editor (recomendamos VS Code) y la terminal.
  • No necesitas experiencia previa con FastAPI ni con SQL.

Al terminar tendrás

  • Una API completa con base de datos, autenticación y pruebas, en tu propio repositorio.
  • Ocho proyectos de práctica que puedes mostrar como portafolio.
  • Las grabaciones disponibles para volver a verlas cuando lo necesites.

Empieza el lunes 14 de septiembre

Pago en línea con MercadoPago, transferencia o PayPal. Acceso al grupo de apoyo desde la primera sesión.