Son una forma de organizar la aplicación en módulos independientes.
mi_app/
│── app.py
│── /templates
│── /static
│── /usuarios
│ ├── __init__.py
│ ├── rutas.py
│── /productos
├── __init__.py
├── rutas.py
from flask import Blueprint
usuarios_bp = Blueprint("usuarios", __name__)
@usuarios_bp.route("/usuarios")
def lista_usuarios():
return "Listado de usuarios"
from usuarios.rutas import usuarios_bp
app.register_blueprint(usuarios_bp)
app.register_blueprint(usuarios_bp, url_prefix="/api")
Ahora la ruta sería /api/usuarios.
@usuarios_bp.route("/perfil")
def perfil():
return render_template("usuarios/perfil.html")
Los templates pueden organizarse en carpetas por módulo.
# 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")
usuarios con un blueprint y una ruta /login./usuarios.productos con una ruta /lista.