Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

304
Visualizações
Manejo y redirección de FastAPI 404

¿Cómo puedo redirigir una solicitud con FastAPI si hay una HTTPException?

En Flask podemos lograr eso así:

 @app.errorhandler(404) def handle_404(e): if request.path.startswith('/api'): return render_template('my_api_404.html'), 404 else: return redirect(url_for('index'))

O en Django podemos usar django.shortcuts:

 from django.shortcuts import redirect def view_404(request, exception=None): return redirect('/')

¿Cómo podemos lograr eso con FastAPI?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Podemos lograr eso usando el controlador de excepciones de FastAPI:

Si tienes prisa, puedes usar esto:

 from fastapi.responses import RedirectResponse from starlette.exceptions import HTTPException as StarletteHTTPException @app.exception_handler(StarletteHTTPException) async def custom_http_exception_handler(request, exc): return RedirectResponse("/")

Pero un enfoque más específico, puede crear su(s) propio(s) controlador(es) de excepciones:

 class UberSuperHandler(StarletteHTTPException): pass def function_for_uber_super_handler(request, exc): return RedirectResponse("/") app.add_exception_handler(UberSuperHandler, function_for_uber_super_handler)
over 4 years ago · Santiago Trujillo Relatório

0

Sé que es demasiado tarde, pero este es el enfoque más corto para manejar las excepciones 404 a su manera personal.

redirigir

 from fastapi.responses import RedirectResponse @app.exception_handler(404) async def custom_404_handler(_, __): return RedirectResponse("/")

Plantilla Jinja personalizada

 from fastapi.templating import Jinja2Templates from fastapi.staticfiles import StaticFiles templates = Jinja2Templates(directory="templates") app.mount("/static", StaticFiles(directory="static"), name="static") @app.exception_handler(404) async def custom_404_handler(request, __): return templates.TemplateResponse("404.html", {"request": request})

Servir HTML desde un archivo

 @app.exception_handler(404) async def custom_404_handler(_, __): return FileResponse('./path/to/404.html')

Sirve HTML directamente

 from fastapi.responses import HTMLResponse response_404 = """ <!DOCTYPE html> <html lang="en"> <head> <title>Not Found</title> </head> <body> <p>The file you requested was not found.</p> </body> </html> """ @app.exception_handler(404) async def custom_404_handler(_, __): return HTMLResponse(response_404)

Nota : el decoradorException_handler pasa la request exception exception_handler argumentos a la función. He usado _ y __ donde las variables son innecesarias.

over 4 years ago · Santiago Trujillo Relatório

0

Yo uso este método,

 from fastapi.responses import RedirectResponse from starlette.exceptions import HTTPException as StarletteHTTPException app.mount("/static", StaticFiles(directory="static"), name="static") templates = Jinja2Templates(directory="templates") @app.exception_handler(StarletteHTTPException) async def custom_http_exception_handler(request, exc): return templates.TemplateResponse("404.html", {"request": request})
  • Asegúrese de tener una carpeta estática, para sus archivos estáticos y una carpeta de plantillas para sus archivos html.
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda