"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como criar uma página 404 personalizada no FastAPI?

Como criar uma página 404 personalizada no FastAPI?

Publicado em 2024-11-26
Navegar:858

How to Create a Custom 404 Page in FastAPI?

Como retornar uma página personalizada 404 não encontrada usando FastAPI?

Introdução

Ao criar aplicativos da web, é essencial para lidar adequadamente com códigos de status HTTP. Um código de status comum que você pode encontrar é 404 Not Found, que indica que não foi possível encontrar um recurso solicitado. Este artigo explorará vários métodos para retornar uma página 404 personalizada usando FastAPI, uma estrutura Python moderna para construir APIs da web.

Abordagem de manipulador de exceções

FastAPI fornece uma maneira conveniente para lidar com exceções por meio de seu mecanismo de tratamento de exceções. Você pode definir um manipulador personalizado para lidar com a exceção 404 e retornar uma resposta personalizada.

@app.exception_handler(404)
async def not_found_exception_handler(request: Request, exc: HTTPException):
    return RedirectResponse('https://fastapi.tiangolo.com')

Como alternativa, você pode usar o parâmetro exception_handlers da classe FastAPI para registrar um manipulador de exceção global.

async def not_found_error(request: Request, exc: HTTPException):
    return RedirectResponse('https://fastapi.tiangolo.com')

exception_handlers = {404: not_found_error}
app = FastAPI(exception_handlers=exception_handlers)

Abordagem de middleware

Outra abordagem é criar um middleware que intercepte respostas HTTP e verifique o código de status. Se o código de status for 404, o middleware poderá retornar uma resposta personalizada antes que a resposta chegue ao cliente.

@app.middleware("http")
async def redirect_on_not_found(request: Request, call_next):
    response = await call_next(request)
    if response.status_code == 404:
        return RedirectResponse("https://fastapi.tiangolo.com")
    else:
        return response

Resposta de página personalizada

Usando os métodos mencionados acima, você pode retornar uma resposta de redirecionamento simples. No entanto, você também pode criar uma página 404 mais personalizada definindo um modelo e retornando um TemplateResponse.

from fastapi.templating import Jinja2Templates

templates = Jinja2Templates(directory='templates')

async def not_found_error(request: Request, exc: HTTPException):
    return templates.TemplateResponse('404.html', {'request': request}, status_code=404)

No diretório de modelos, crie um modelo 404.html com o conteúdo desejado para sua página 404 personalizada.

Conclusão

Aproveitando manipuladores de exceções, middleware ou respostas de páginas personalizadas, você pode implemente facilmente uma página 404 Not Found personalizada no FastAPI. Isso permite que você forneça uma experiência mais amigável quando um recurso solicitado não puder ser encontrado, melhorando a experiência geral do usuário em seu aplicativo da web.

Declaração de lançamento Este artigo é reproduzido em: 1729691392 Se houver alguma violação, entre em contato com [email protected] para excluí -lo.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3