Blueprints agrupam rotas, handlers e recursos relacionados sem criar várias aplicações Flask. Com uma application factory, o registro fica explícito e cada teste pode construir uma instância configurada para seu cenário.

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 cria um namespace de URL e o nome do blueprint participa dos endpoints. Evite importar a instância global da aplicação dentro dos módulos; use current_app quando necessário e injete serviços nas fronteiras apropriadas.

Boas práticas

Divida por domínio ou capacidade, não por um arquivo para cada rota. Registre extensões antes dos blueprints quando eles dependem delas. Erros 404 e 405 podem exigir tratamento no nível da aplicação, pois ocorrem antes de um blueprint ser escolhido. Verifique nomes de endpoint para evitar colisões.

Veja o guia de APIs com Flask e compare a organização com injeção de dependências no FastAPI.

A documentação oficial de Blueprints do Flask, consultada em 22 de julho de 2026, detalha a API e seus limites.