Introducción a Flask
Flask es un framework ligero de aplicaciones web en Python, desarrollado y mantenido por la organización Pallets.
Se caracteriza por su simplicidad y flexibilidad, lo que te permite comenzar rápidamente a crear aplicaciones web y, al mismo tiempo, tiene la capacidad de escalar a proyectos complejos.

Flask es un microframework web desarrollado en Python. Se le llama microframework porque no está vinculado a ninguna herramienta o biblioteca de dependencias específica, y no incluye de forma nativa componentes web comunes como capas de abstracción de bases de datos o validación de formularios.
Flask tiene una excelente capacidad de soporte de extensiones; se pueden agregar complementos de funciones adicionales según sea necesario. Actualmente existen extensiones maduras para ORM (mapeo objeto-relacional), validación de formularios, carga de archivos, autenticación abierta y diversas herramientas de desarrollo complementarias, que permiten completar las funciones necesarias para el proyecto.
¿Qué es Flask?
Flask es unWSGI(Web Server Gateway Interface)framework de aplicaciones web.
WSGI es un conjunto de interfaces estándar definidas en Python que especifican cómo se comunican los servidores web con las aplicaciones web Python. Puedes entenderlo como el "enchufe universal" del mundo web de Python.
Flask fue originalmente una simple capa de envoltura sobre Werkzeug y Jinja, pero hoy se ha convertido en uno de los frameworks web más populares de la comunidad Python.
Dependencias principales
Al instalar Flask, las siguientes dependencias se instalan automáticamente, cada una cumple su función:
| Biblioteca de dependencias | Función | Cuándo la necesitas |
|---|---|---|
| Werkzeug | Biblioteca de herramientas WSGI, responsable del análisis de peticiones HTTP, encapsulación de respuestas y coincidencia de rutas URL. | Cuando procesas peticiones (request) y devuelves respuestas (response), en el fondo está trabajando Werkzeug. |
| Jinja2 | Motor de plantillas, responsable de renderizar datos en páginas HTML. | Usorender_template()Al generar páginas dinámicas |
| Click | Marco de herramientas de línea de comandos, que proporcionaflaskcomandos de terminal | ejecutarflask runy comandos CLI personalizados. |
| itsdangerous | Biblioteca de firma de datos, garantiza que la integridad de los datos no sea alterada. | Verificación de firma de cookies de sesión. |
| blinker | Mecanismo de señales, que permite activar devoluciones de llamada cuando ocurren eventos específicos. | Cuando quieras ejecutar lógica personalizada al inicio/fin de una petición. |
Para comprender y recordar: Imagina a Flask como un automóvil: Werkzeug es el motor (energía central), Jinja2 es el interior (la parte que ve el usuario), Click es el volante (la forma en que controlas) e itsdangerous es el cinturón de seguridad (garantía de seguridad).
Filosofía de diseño de Flask
Los dos principios fundamentales de Flask determinan su forma de uso.
Microframework, pero no micro en capacidades
El núcleo de Flask es muy minimalista, pero gracias a su rico ecosistema de extensiones, puede satisfacer casi cualquier necesidad.
No te obliga a usar una base de datos, biblioteca de formularios o estructura de proyecto específica: el desarrollador elige la herramienta más adecuada.
Este diseño significa que los proyectos pequeños no se ven lastrados por el framework y los proyectos grandes se pueden ensamblar según sea necesario.
Explícito es mejor que implícito
A diferencia de algunos frameworks "todo en uno", Flask no hace muchas cosas por ti en silencio.
Cada función requiere que la introduzcas y configures explícitamente. Al principio puede que necesites escribir algunas líneas más de código, pero a cambio obtienes un control total sobre el proyecto.
Si has trabajado con Django antes, puede que sientas que en Flask "tienes que hacerlo todo tú mismo". Precisamente esa es la intención de diseño de Flask: hacerte saber claramente de dónde viene cada función.
Características de Flask
Ligereza y simplicidad: Flask es un microframework que ofrece las funciones más básicas y no obliga a usar ninguna herramienta o biblioteca específica. Su núcleo es simple y flexible, lo que permite a los desarrolladores añadir funciones según sea necesario.
Flexibilidad: Flask proporciona una estructura básica de framework, pero sin una disposición o componentes de proyecto obligatorios; los desarrolladores pueden personalizarla según sus necesidades.
Extensibilidad: El diseño de Flask te permite añadir funciones mediante complementos y extensiones. Muchas funciones comunes, como el manejo de formularios, la interacción con bases de datos y la autenticación de usuarios, se pueden implementar con extensiones proporcionadas por la comunidad.
Servidor de desarrollo integrado: Flask incluye un servidor de desarrollo integrado para facilitar la depuración y las pruebas en local.
Soporte RESTful: Flask admite el desarrollo de API RESTful, ideal para crear servicios y aplicaciones web modernos.
Si has trabajado con Django antes, puede que sientas que en Flask "tienes que hacerlo todo tú mismo". Precisamente esa es la intención de diseño de Flask: hacerte saber claramente de dónde viene cada función y tener un control total sobre el proyecto.
Casos de uso de Flask
Proyectos pequeños: Para proyectos personales pequeños o proyectos en etapa inicial, la simplicidad y flexibilidad de Flask permiten un inicio y una iteración rápidos.
Desarrollo de prototipos: En las primeras fases del desarrollo de un producto, Flask se puede utilizar para crear prototipos rápidamente y validar conceptos e interfaces de usuario.
Microservicios: En una arquitectura de microservicios, Flask se puede utilizar para construir componentes de servicio independientes y ligeros.
Desarrollo de API: Flask es muy adecuado para desarrollar API RESTful, ya que su sistema de rutas es simple y claro, lo que permite definir endpoints de API fácilmente.
Educación y aprendizaje: Por su facilidad de uso, Flask es una excelente herramienta para aprender desarrollo web y programación en Python.
Herramientas internas: Flask se puede utilizar para desarrollar herramientas o paneles de control internos de empresas, que normalmente no requieren interfaces de usuario complejas.
Complementos o extensiones: Flask puede utilizarse como complemento o extensión de otros frameworks grandes para proporcionar funciones específicas.
Aplicaciones web personalizadas: Para aplicaciones web que requieren una alta personalización, Flask ofrece la flexibilidad suficiente para satisfacer necesidades específicas.
Visualización de datos: Flask se puede combinar con bibliotecas de visualización de datos (como Bokeh o Plotly) para crear aplicaciones web interactivas de visualización de datos.
Computación científica y análisis de datos: Flask se puede combinar con bibliotecas de computación científica (como NumPy, Pandas) para desarrollar aplicaciones web de análisis de datos y computación científica.
CMS ligero: Flask se puede utilizar para construir sistemas de gestión de contenidos ligeros, especialmente cuando se necesita una alta personalización.
Web Scraping: Flask puede utilizarse como backend para proyectos de Web Scraping, manejando la extracción de datos y las peticiones API.
Componentes de Flask
/Users/tianqixin/ejemplo-test/ejemplo-article/2026-05-13/images/flask-architecture.svgInstancia de la aplicación Flask: El núcleo de Flask es la instancia de la aplicación, que se inicializa creando un objeto Flask.
Rutas y funciones de vista: Las rutas asignan URLs a funciones de vista; las funciones de vista procesan las peticiones y devuelven respuestas.
Sistema de plantillas: Flask utiliza el motor de plantillas Jinja2 para renderizar páginas HTML e insertar datos dinámicamente en ellas.
Peticiones y respuestas: Flask procesa peticiones HTTP y genera respuestas, con soporte para varios métodos HTTP (como GET, POST).
Panorama general de la pila tecnológica
La siguiente imagen muestra la estructura de capas típica de una aplicación Flask, lo que te ayuda a comprender la posición de cada componente en su conjunto: