- ¿Qué es un framework?
- ¿Qué es Flask?
- Tu primera aplicación con Flask
- Ejecutar el servidor de desarrollo
- Activar el modo de depuración (debug)
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:
- Envía una solicitud (request) al servidor
- El servidor procesa esa solicitud
- Luego responde con una página web o datos (response)
Este proceso de solicitud-procesamiento-respuesta es común en todas las aplicaciones web.
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?
¿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.pyel objeto llamadoapp - 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
- Crea un nuevo proyecto e instala el paquete
flasken su entorno - Crea un módulo
example.pycon el contenido del ejemplo al comienzo de la lección - Crea un Makefile con el comando
make start. Modifícalo para que inicie Flask usando uv - Inicia el servidor
- Abre en el navegador la dirección que te muestra el servidor al iniciarse
- 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
- 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.