Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Flask Python: Desarrollo web con Flask

Flask es uno de los microframeworks más populares en el ecosistema de Python para desarrollo web. Si ya tienes algo de experiencia escribiendo código en Python, trabajar con Flask será una forma divertida y práctica de aprender cómo funcionan las aplicaciones web por dentro.


¿Qué es un framework?

Cuando un navegador accede a una página web, en realidad está haciendo una serie de acciones que se repiten en la mayoría de sitios:

  1. Envía una solicitud (request) al servidor
  2. El servidor procesa esa solicitud
  3. Luego responde con una página web o datos (response)

Este proceso de solicitud-procesamiento-respuesta es común en todas las aplicaciones web.

Crear esta estructura desde cero cada vez sería muy complicado. Por eso existen los frameworks: herramientas que ya traen esa estructura base y nos permiten enfocarnos solo en lo que hace diferente a nuestro sitio.

Biblioteca vs. Framework

Biblioteca Framework
No define la estructura general Sí define una estructura ya preparada
Tú decides cómo se ejecuta El framework te dice "dónde poner qué"
Requests, NumPy Flask, Django

¿Qué es Flask?

Flask es un microframework. Eso significa que es muy liviano y solo incluye las herramientas mínimas necesarias para manejar solicitudes HTTP. Se le llama "micro" no porque sea menos potente, sino porque viene con lo justo para empezar y crecer con extensiones si las necesitas más adelante.

¿Qué puede hacer Flask?

  • Recibir solicitudes web (por ejemplo, cuando alguien visita una URL)
  • Elegir qué función ejecutar dependiendo de la ruta: esto se llama enrutamiento o routing
  • Enviar respuestas con diferentes tipos de datos (texto, JSON, etc.)
  • Trabajar con sesiones y cookies
  • Usar plantillas (templates) para mostrar contenido dinámico (por ejemplo: páginas HTML)

Flask no incluye por defecto:

  • Una manera de conectarse y trabajar con bases de datos
  • Un panel administrativo
  • Validación de formularios de usuario

Pero todo esto se puede agregar fácilmente usando bibliotecas externas. Aquí hay un listado de extensiones disponibles en PyPI:


Tu primera aplicación con Flask

Vamos a crear un sitio web muy simple que diga “Welcome to Flask!” cuando lo abrimos en el navegador.

Paso 1: Crea el proyecto

Abre tu editor de texto y crea una carpeta llamada hexlet-flask-example. Dentro, crea un archivo llamado example.py.

Asegúrate de tener Flask instalado. Si estás usando un entorno virtual, instálalo con:

pip install flask

Paso 2: Agrega el siguiente código en example.py

from flask import Flask  # Importamos la clase Flask

# Creamos una instancia de la aplicación Flask
app = Flask(__name__)

# Definimos una ruta: cuando accedamos al sitio raíz "/"
@app.route('/')
def hello_world():
    return 'Welcome to Flask!'  # Este será el mensaje que veremos en el navegador

¿Qué significa este código?

Código Explicación
from flask import Flask Importamos la clase principal del framework
app = Flask(__name__) Creamos la app indicando el módulo actual para que Flask sepa dónde está el código (y plantillas)
@app.route('/') Es un decorador que indica qué función se ejecuta al visitar una ruta (en este caso, /)
return 'Welcome...' Esta es la respuesta que verá el usuario en su navegador

Ejecutar el servidor de desarrollo

Flask viene con un servidor pequeño ideal para hacer pruebas. No es recomendado para producción, pero sirve muy bien durante la etapa de desarrollo.

Ejecutar desde la terminal:

flask --app example run --port 8000

Esto hace lo siguiente:

  • Busca en el archivo example.py el objeto llamado app
  • Inicia el servidor web en el puerto 8000

Mensaje de salida esperado:

 * Serving Flask app 'example.py'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment.
 * Running on http://127.0.0.1:8000

Ahora abre tu navegador y entra a http://127.0.0.1:8000. ¡Deberías ver “Welcome to Flask!” en pantalla!

Opcional: Automate el comando con Makefile

Si quieres automatizar el comando, puedes crear un archivo llamado Makefile con esta tarea sencilla:

start:
    flask --app example run --port 8000

Y luego ejecutar:

make start

Activar el modo de depuración (debug)

Cuando estás desarrollando, lo más útil es ver los errores directamente en el navegador y que el servidor se reinicie automáticamente cada vez que haces un cambio. Para eso sirve el modo debug.

Ejecutar Flask en modo debug

flask --app example --debug run --port 8000

También puedes actualizar el archivo Makefile así:

start:
    flask --app example --debug run --port 8000

¿Qué cambia al activarlo?

Ahora verás esto en la consola:

 * Debug mode: on
 * Debugger is active!
 * Debugger PIN: xxx-xxx-xxx
  • El servidor se reiniciará automáticamente cada vez que guardes cambios
  • Si ocurre un error, lo verás con muchos detalles en el navegador (en lugar de solo "Internal Server Error")

Prueba cambiar el texto que retorna la función:

def hello_world():
    return 'Hello, Hexlet!'

Guárdalo y vuelve al navegador. Deberías ver el nuevo mensaje sin reiniciar el servidor manualmente.


Resumen

  • Un framework define la estructura general de tu aplicación y te ahorra mucho trabajo repetitivo.
  • Flask es un microframework en Python ideal para aprender y crear sitios pequeños o medianos.
  • Puedes crear un sitio básico con unas pocas líneas de código.
  • El servidor de desarrollo te ayuda a ver tu aplicación rápidamente, pero no es para producción.
  • Activando el modo de depuración puedes ver errores detallados y recargar automáticamente los cambios.
  • Flask se puede extender con bibliotecas externas si necesitas bases de datos, formularios o un panel administrativo.

Para conocer más sobre Flask puedes visitar su sitio oficial.

¿Listo para seguir avanzando? En la próxima lección aprenderemos cómo manejar rutas más complejas y extraer parámetros de la URL.


Trabajo independiente

  1. Crea un nuevo proyecto e instala el paquete flask en su entorno
  2. Crea un módulo example.py con el contenido del ejemplo al comienzo de la lección
  3. Crea un Makefile con el comando make start. Modifícalo para que inicie Flask usando uv
  4. Inicia el servidor
  5. Abre en el navegador la dirección que te muestra el servidor al iniciarse
  6. Asegúrate de que el texto se muestre y que los cambios en la cadena del archivo fuente se reflejen en el texto que se muestra sin reiniciar manualmente el servidor
  7. Intenta devolver un número en lugar de una cadena. Como respuesta, el navegador debe mostrar un error TypeError, y este también debe verse en la terminal donde se ejecuta el servidor

Aplicación de referencia

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY