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.