Misión 3 · Lección 8

Blueprints y Estructuración de Proyectos en Flask

Objetivos

¿Qué son los Blueprints?

Son una forma de organizar la aplicación en módulos independientes.

Estructura básica de proyecto

mi_app/
│── app.py
│── /templates
│── /static
│── /usuarios
│    ├── __init__.py
│    ├── rutas.py
│── /productos
     ├── __init__.py
     ├── rutas.py

Definir un Blueprint

from flask import Blueprint

usuarios_bp = Blueprint("usuarios", __name__)

@usuarios_bp.route("/usuarios")
def lista_usuarios():
    return "Listado de usuarios"

Registrar un Blueprint

from usuarios.rutas import usuarios_bp

app.register_blueprint(usuarios_bp)

Blueprint con prefijo

app.register_blueprint(usuarios_bp, url_prefix="/api")

Ahora la ruta sería /api/usuarios.

Separar Templates

@usuarios_bp.route("/perfil")
def perfil():
    return render_template("usuarios/perfil.html")

Los templates pueden organizarse en carpetas por módulo.

Buenas Prácticas

Ejemplo completo

# usuarios/rutas.py
from flask import Blueprint
usuarios_bp = Blueprint("usuarios", __name__)

@usuarios_bp.route("/login")
def login():
    return "Página de login"

# app.py
from flask import Flask
from usuarios.rutas import usuarios_bp

app = Flask(__name__)
app.register_blueprint(usuarios_bp, url_prefix="/usuarios")

Ejercicio Guiado

  1. Crea un módulo usuarios con un blueprint y una ruta /login.
  2. Regístralo en la app principal con prefijo /usuarios.
  3. Crea otro módulo productos con una ruta /lista.
  4. Organiza los templates en carpetas por módulo.