Elige tu idioma
Curso de Flask
Más de 2 millones de estudiantes en todo el mundo

Curso de Flask

4

Dominá Flask desde cero y construí aplicaciones web reales en Python que sean seguras, escalables y listas para producción. Este curso cubre todo, desde enrutamiento y plantillas hasta bases de datos, autenticación, APIs REST y despliegue. Vas a adquirir las habilidades prácticas que los empleadores y clientes realmente buscan en un desarrollador backend Python.

Dedika para empresas

Qué vas a aprender:

Vas a aprender a configurar un entorno de desarrollo profesional con Flask y a estructurar proyectos para que sean fáciles de mantener a largo plazo. El curso cubre enrutamiento dinámico, creación de plantillas con Jinja2, validación de formularios y gestión de bases de datos usando SQLAlchemy. Vas a implementar autenticación de usuarios con Flask-Login, construir APIs RESTful con seguridad basada en tokens y escribir pruebas automatizadas con pytest. Los temas avanzados incluyen tareas en segundo plano con Celery, funcionalidades en tiempo real con Flask-SocketIO y contenerización con Docker. Al finalizar, vas a saber cómo configurar el registro de eventos, aplicar buenas prácticas de seguridad y desplegar una aplicación Flask completamente funcional en un servidor en producción.

Cómo estudiás de forma práctica Curso de Flask

Cómo practicás Curso de Flask

Para vos que sos empresa y querés capacitar a tu equipo

En Dedika para empresas, el curso incluye ejercicios y ejemplos adaptados a tu propio negocio y a las necesidades de tu empresa.

Hacé clic acá

Contenido del curso

8 Capítulos • 40 LeccionesDuración entre 4 y 360 horas (tú decides)

Capítulo 1Ver detalles

Fundamentos de Flask y configuración del entorno

  • Lección 1 • Entorno Python y entornos virtuales

    Configurá Python, pip y entornos virtuales aislados para proyectos Flask. Un aislamiento adecuado evita conflictos de dependencias entre proyectos.

  • Lección 2 • Gestión de la configuración

    Cargá y alterná entre configuraciones de desarrollo, testing y producción. La configuración externalizada mantiene los secretos fuera del código fuente.

  • Lección 3 • Tu primera aplicación Flask

    Escribí y ejecutá una app Flask mínima para entender el patrón application factory. Los estudiantes trazan una solicitud desde el navegador a la función Python y viceversa.

  • Lección 4 • Instalación y configuración de Flask

    Instalá Flask y verificá la instalación con una app mínima. Esto establece la cadena de herramientas base para todos los capítulos siguientes.

  • Lección 5 • Estructura de un proyecto Flask

    Organizá archivos y carpetas siguiendo las convenciones de Flask para proyectos escalables. Una buena estructura reduce la fricción a medida que la aplicación crece.

Capítulo 2Ver detalles

Routing, vistas y construcción de URLs

  • Lección 1 • Conceptos básicos de rutas y métodos HTTP

    Definí rutas con el decorador @app.route y restringilas a métodos HTTP específicos. Esto conecta patrones de URL con la lógica de las vistas.

  • Lección 2 • Blueprints para la organización de rutas

    Agrupá rutas relacionadas en Blueprints para modularizar aplicaciones grandes. Los Blueprints son la base de una arquitectura Flask escalable.

  • Lección 3 • Construcción de URLs con url_for

    Generá URLs a partir de nombres de endpoint en lugar de strings hardcodeados. url_for mantiene los enlaces consistentes cuando las rutas cambian.

  • Lección 4 • Parámetros de URL dinámicos

    Capturá segmentos variables en las URL y convertilos a valores Python tipados. Las rutas dinámicas permiten un diseño de URL basado en recursos.

  • Lección 5 • Redirecciones y manejadores de errores

    Emití redirecciones HTTP y registrá páginas de error personalizadas para respuestas 404 y 500. Un manejo adecuado de errores mejora la experiencia de usuario y la depuración.

Capítulo 3Ver detalles

Plantillas y el motor Jinja2

  • Lección 1 • Renderizado de plantillas con render_template

    Pasá datos Python a archivos HTML usando render_template y sintaxis Jinja2. Las plantillas separan la presentación de la lógica de negocio.

  • Lección 2 • Herencia de plantillas y bloques

    Definí una plantilla base de layout y extendela en plantillas hijas usando etiquetas block. La herencia impone una estructura consistente en todo el sitio.

  • Lección 3 • Estructuras de control en Jinja2

    Usá bloques if/else y bucles for dentro de las plantillas para generar HTML condicional y repetitivo. Las estructuras de control eliminan el markup redundante.

  • Lección 4 • Macros, includes y componentes reutilizables

    Encapsulá fragmentos HTML repetidos como macros o partials incluidos. Los componentes reutilizables reducen la duplicación en muchas páginas.

  • Lección 5 • Filtros y tests de plantillas

    Transformá valores de salida con filtros incorporados y escribí filtros personalizados para formato específico del proyecto. Los filtros mantienen la lógica fuera de las plantillas.

Capítulo 4Ver detalles

Formularios, validación y entrada del usuario

  • Lección 1 • Validadores y mensajes de error

    Aplicá validadores incorporados como DataRequired y Email, y mostrá mensajes de error en las plantillas. Los validadores refuerzan la integridad de los datos antes del procesamiento.

  • Lección 2 • Carga de archivos

    Aceptá cargas de archivos, validá tipos de archivo y guardalos de forma segura en el servidor. El manejo seguro de cargas previene path traversal y ejecución de archivos maliciosos.

  • Lección 3 • Protección CSRF

    Habilitá y verificá tokens CSRF en cada envío de formulario para prevenir cross-site request forgery. La protección CSRF es obligatoria para cualquier formulario que modifique estado.

  • Lección 4 • Configuración de Flask-WTF y WTForms

    Instalá Flask-WTF, configurá una secret key y definí clases de formulario con campos tipados. Las clases de formulario centralizan las reglas de validación y las definiciones de campos.

  • Lección 5 • Manejo de datos crudos de formularios

    Leé valores de formulario enviados desde request.form y request.args sin una librería de formularios. Entender el acceso crudo clarifica lo que las herramientas de alto nivel abstraen.

Capítulo 5Ver detalles

Bases de datos con Flask-SQLAlchemy

  • Lección 1 • Definición de modelos y relaciones

    Creá clases de modelo que mapean a tablas de la base de datos y definí relaciones uno a muchos y muchos a muchos. Los modelos son la definición del esquema para la aplicación.

  • Lección 2 • Consultas avanzadas y paginación

    Escribí consultas complejas con joins, agregados y ordenamiento, y paginá conjuntos de resultados grandes. Las consultas eficientes reducen la carga en la base de datos y mejoran los tiempos de respuesta.

  • Lección 3 • Migraciones de base de datos con Flask-Migrate

    Usá Flask-Migrate para generar y aplicar migraciones de esquema sin pérdida de datos. Las migraciones permiten una evolución segura y versionada del esquema en producción.

  • Lección 4 • Configuración de Flask-SQLAlchemy

    Instalá Flask-SQLAlchemy, configurá la URI de la base de datos e inicializá el objeto db. El objeto db es la interfaz central para todas las operaciones de base de datos.

  • Lección 5 • Operaciones CRUD

    Insertá, consultá, actualizá y eliminá registros usando la API de sesión de SQLAlchemy. Las operaciones CRUD son los bloques de construcción de cada funcionalidad impulsada por datos.

Capítulo 6Ver detalles

Autenticación y gestión de sesiones

  • Lección 1 • Configuración de Flask-Login y User Loader

    Instalá Flask-Login, configurá el LoginManager e implementá el callback user_loader. El user_loader reconstruye el usuario actual desde la sesión en cada solicitud.

  • Lección 2 • Hashing de contraseñas y User Model

    Hasheá contraseñas con Werkzeug y almacená solo valores hasheados en la base de datos. Almacenar contraseñas en texto plano es una vulnerabilidad de seguridad crítica.

  • Lección 3 • Protección de rutas con login_required

    Restringí el acceso a las vistas usando el decorador @login_required y redirigí a los usuarios no autenticados. La protección de rutas impone la autorización en la capa de vista.

  • Lección 4 • Control de acceso basado en roles

    Asigná roles a los usuarios y restringí vistas según la pertenencia al rol. RBAC separa lo que los diferentes tipos de usuarios pueden hacer.

  • Lección 5 • Vistas de registro e inicio de sesión

    Construí formularios de registro e inicio de sesión que crean cuentas y autentican usuarios. Estas vistas son los puntos de entrada a la porción autenticada de la app.

Capítulo 7Ver detalles

Construcción de APIs RESTful con Flask

  • Lección 1 • Principios REST y Diseño de API

    Aplicá restricciones REST para diseñar esquemas de URL orientados a recursos y elegir los verbos HTTP correctos. Un buen diseño de API reduce la complejidad del lado del cliente.

  • Lección 2 • Devolución de respuestas JSON

    Serializá objetos Python a JSON usando jsonify y establecé cabeceras de respuesta apropiadas. Una serialización consistente asegura la interoperabilidad con clientes de API.

  • Lección 3 • Manejo de errores y documentación de API

    Devolvé respuestas de error JSON estructuradas y documentá los endpoints con docstrings o especificaciones OpenAPI. Mensajes de error y documentación claros reducen la fricción de integración.

  • Lección 4 • Autenticación de API con tokens

    Protegé endpoints de API usando autenticación basada en tokens con Flask-HTTPAuth o JWT. La autenticación stateless por token es el estándar para APIs REST.

  • Lección 5 • Parseo de solicitudes JSON entrantes

    Leé y validá payloads JSON desde request.get_json() y manejá entradas mal formadas con elegancia. La validación de entrada previene el procesamiento de datos corruptos o maliciosos.

Capítulo 8Ver detalles

Testing, despliegue y preparación para producción

  • Lección 1 • Variables de entorno y gestión de secretos

    Inyectá secretos y configuración mediante variables de entorno y usá un archivo .env para desarrollo local. Externalizar secretos evita que las credenciales entren al control de versiones.

  • Lección 2 • Logging, monitoreo y seguimiento de errores

    Configurá el logging de Python, la salida de logs estructurados e integrá un servicio de seguimiento de errores. La observabilidad permite un diagnóstico rápido de problemas en producción.

  • Lección 3 • Servidores WSGI y proxies inversos

    Reemplazá el servidor de desarrollo con Gunicorn y colocá Nginx al frente como proxy inverso. Los servidores WSGI de producción manejan la concurrencia que el servidor de desarrollo no puede.

  • Lección 4 • Fixtures de prueba y cobertura

    Usá fixtures de pytest para establecer y desmontar el estado de prueba, y medí la cobertura de código con pytest-cov. Las métricas de cobertura revelan caminos de código no probados.

  • Lección 5 • Pruebas unitarias y de integración con pytest

    Escribí pruebas basadas en pytest para funciones de vista, modelos y validación de formularios usando el cliente de prueba de Flask. Las pruebas automatizadas detectan regresiones antes del despliegue.

Certificación

Tu certificado válido de finalización

Este curso es para vos:

  • Escribís scripts en Python y estás listo para convertir código en aplicaciones web reales.

  • Estás cambiando de carrera: venís de un área no técnica y querés pasar al desarrollo web backend.

  • Sos analista de datos y querés exponer modelos y resultados a través de una interfaz web.

  • Sos desarrollador freelance y necesitás un stack Python confiable para proyectos web de clientes.

  • Sos estudiante de Ciencias de la Computación y buscás unir los conocimientos académicos de Python con frameworks prácticos.

  • Sos desarrollador junior y estás armando proyectos de portfolio para conseguir tu primer puesto backend.

Lo que dicen nuestros alumnos

Sus clases son perfectas. Adquirí el paquete de un año y, finalmente, tengo la oportunidad de seguir diversos temas de mi interés sin necesidad de cambiar de plataforma... les agradezco por todo lo que hacen, ya los recomendé a otras personas...
Giulio Carlo
Giulio CarloEstudiante de Marketing Digital
Me gusta cómo las lecciones van directo al grano y cómo puedo cambiar capítulos y saltear contenidos que no necesito.
Mariana Ferres
Mariana FerresEstudiante de Fotografía
Me gusta el contenido y la forma de presentación y transcripción de videos, ¡lo que acelera el proceso!
Luciana Alvarenga
Luciana AlvarengaEstudiante de Diseño de Uñas
La plataforma es rápida, simple de usar. La diversidad de contenido y los videos complementarios ayudan mucho en el aprendizaje.
André Felipe
André FelipeEstudiante de Ingeniería de Prompts

Principales capacitaciones

Preguntas frecuentes

¿Quién es Dedika?

¿El certificado es válido en Argentina?

¿Los cursos son gratuitos?

¿Cuál es la carga horaria del curso?

¿Cómo son los cursos?

¿Cómo funcionan los cursos?

¿Cuál es la duración de los cursos?

¿Cuál es el costo o precio de los cursos?

¿Qué es un curso EAD u online y cómo funciona?

Curso en PDF