Blueprints agrupan rutas, handlers y recursos relacionados sin crear varias aplicaciones Flask. Con una application factory, el registro queda explícito y cada prueba puede construir una instancia configurada para su escenario.
from flask import Blueprint, Flask, jsonify
api = Blueprint("api", __name__, url_prefix="/api")
@api.get("/status")
def status():
return jsonify(status="ok")
def create_app() -> Flask:
app = Flask(__name__)
app.register_blueprint(api)
return app
url_prefix crea un namespace de URL y el nombre del blueprint participa en los endpoints. Evita importar una instancia global de la aplicación dentro de módulos; usa current_app cuando corresponda e inyecta servicios en límites claros.
Buenas prácticas
Divide por dominio o capacidad, no por un archivo para cada ruta. Inicializa extensiones antes de los blueprints que dependan de ellas. Los errores 404 y 405 pueden requerir tratamiento a nivel de aplicación porque ocurren antes de elegir un blueprint. Comprueba nombres de endpoint para evitar colisiones.
Consulta la guía de APIs con Flask y compara la organización con inyección de dependencias en FastAPI.
La documentación oficial de Blueprints de Flask, consultada el 22 de julio de 2026, detalla la API y sus límites.