Crea tu primera app con Flask

Resumen

Crear una aplicación con Flask es más sencillo de lo que parece, sobre todo cuando partes desde cero con un entorno virtual limpio y un único archivo de Python. Aquí aprenderás a montar tu primer Hello World, activar el modo debug y ejecutar el servidor con el comando oficial del framework, ideal si estás dando tus primeros pasos en desarrollo backend con Python.

¿Cómo preparar el entorno virtual antes de instalar Flask?

Antes de escribir una sola línea de código, necesitas aislar las dependencias de tu proyecto en un virtual environment. Esto evita conflictos con otras versiones de librerías que ya tengas en tu sistema.

Estos son los pasos que seguimos en la clase [00:10]:

  • Crear la carpeta del proyecto, por ejemplo notes app, porque vamos a construir una aplicación de notas.
  • Entrar a la carpeta con cd y ejecutar python -m venv venv para generar el entorno virtual.
  • Activar el entorno con source venv/bin/activate en sistemas Unix, o el comando equivalente en Windows.

Cuando el entorno queda activo, lo verás reflejado en el prompt de tu terminal. Ese pequeño detalle confirma que cualquier librería que instales a partir de ahora vivirá únicamente dentro de este proyecto.

¿Para qué sirve un entorno virtual en Python? Aísla las librerías de tu proyecto del resto del sistema, así puedes tener distintas versiones de Flask u otras dependencias sin que se pisen entre proyectos.

¿Cómo instalar Flask con pip y verificar que funciona?

Con el entorno activo, ejecutas pip install flask y la herramienta descargará el micro framework junto con sus dependencias [01:05]. Para confirmar que la instalación quedó bien, corres flask --help y verás todos los comandos disponibles.

Este paso es importante porque te asegura que el ejecutable de Flask está disponible dentro de tu entorno virtual, no en una versión global que podría causarte problemas más adelante.

¿Cómo escribir el Hello World en Flask con app.py?

Dentro de la carpeta del proyecto creamos el archivo app.py, que será el punto de entrada de la aplicación. La estructura mínima requiere importar la clase principal del framework e instanciarla [02:00].

python from flask import Flask

app = Flask(name)

@app.route("/") def hello(): return "Hola, mundo"

if name == "main": app.run(debug=True)

Lo que ocurre aquí tiene varias capas que conviene desmenuzar.

¿Qué hace el decorador @app.route en Flask?

El decorador @app.route convierte una función normal de Python en un endpoint accesible desde el navegador. Le pasas como parámetro la URL que quieres exponer, en este caso /, que corresponde a la raíz de tu aplicación.

Cuando alguien visita esa ruta, Flask ejecuta la función y devuelve lo que esté en el return. Por eso al abrir el navegador en la URL del servidor verás el mensaje Hola, mundo.

La instancia Flask(__name__) recibe el nombre del módulo actual. Es la convención estándar y le indica al framework dónde buscar recursos como plantillas o archivos estáticos [02:30].

¿Por qué se usa if name == "main" en Flask?

Esta condición garantiza que app.run() solo se ejecute cuando corres el archivo directamente con python app.py, no cuando lo importas desde otro módulo. Es una práctica estándar en Python que evita que el servidor arranque por accidente.

Dentro de run() pasamos debug=True para activar dos comportamientos clave:

  • Recarga automática del servidor cada vez que modificas el código.
  • Mensajes de error detallados en el navegador, útiles durante el desarrollo.

¿Cuál es la diferencia entre python app.py y flask run?

Ambos comandos arrancan el servidor de desarrollo, pero tienen implicaciones distintas a la hora de mantener el código limpio y portable [04:30].

Cuando ejecutas python app.py, dependes de las líneas if __name__ == "__main__" y app.run(debug=True) dentro del archivo. El problema aparece cuando subes ese código a un repositorio Git: tendrías que cambiar el valor de debug según el environment donde lo despliegues.

La alternativa que recomienda Flask es eliminar esas dos líneas y usar el comando oficial:

  • flask run para iniciar el servidor con debug desactivado.
  • flask run --debug para activar la recarga automática solo en local.
  • flask run --help para explorar opciones como hilos, archivos extra a vigilar o cambios de puerto.

¿Es seguro usar el servidor de Flask en producción? No. El servidor que arranca con flask run es solo para desarrollo, no es escalable ni seguro. Para producción se usan servidores como Gunicorn o uWSGI detrás de un proxy.

Cuando el servidor levanta, te muestra la URL local donde está corriendo. Al abrirla en el navegador verás el mensaje devuelto por tu función. Si cambias el texto de Hola, mundo a Hola, Luis con el modo debug activo, Flask detecta el cambio y recarga la app sin que tengas que reiniciar nada.

¿Qué advertencia muestra Flask al ejecutar el servidor de desarrollo?

Al iniciar la aplicación verás un warning que indica que estás usando un servidor de desarrollo. Flask lo deja claro por dos motivos: no está endurecido para tráfico real y no maneja bien la carga de múltiples usuarios concurrentes.

Para producción existen mecanismos específicos que veremos más adelante. Por ahora, este servidor es perfecto para iterar rápido mientras construyes la aplicación de notas.

El reto para cerrar es sencillo: crea una nueva ruta llamada Acerca de que devuelva una descripción de la aplicación de notas. Cuéntame en los comentarios cómo te quedó tu endpoint.