Introducción
Al crear aplicaciones web, es esencial para manejar los códigos de estado HTTP de forma adecuada. Un código de estado común que puede encontrar es 404 No encontrado, que indica que no se pudo encontrar un recurso solicitado. Este artículo explorará varios métodos para devolver una página 404 personalizada usando FastAPI, un marco moderno de Python para crear API web.
Enfoque de manejo de excepciones
FastAPI proporciona una manera conveniente para manejar excepciones a través de su mecanismo de manejo de excepciones. Puede definir un controlador personalizado para manejar la excepción 404 y devolver una respuesta personalizada.
@app.exception_handler(404)
async def not_found_exception_handler(request: Request, exc: HTTPException):
return RedirectResponse('https://fastapi.tiangolo.com')
Como alternativa, puede utilizar el parámetroException_handlers de la clase FastAPI para registrar un controlador de excepciones 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)
Enfoque de middleware
Otro enfoque es crear un middleware que intercepte las respuestas HTTP y verifique el código de estado. Si el código de estado es 404, el middleware puede devolver una respuesta personalizada antes de que la respuesta llegue al 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
Respuesta de página personalizada
Utilizando los métodos mencionados anteriormente, puede devolver una respuesta de redireccionamiento simple. Sin embargo, también puede crear una página 404 más personalizada definiendo una plantilla y devolviendo una 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)
En el directorio de plantillas, cree una plantilla 404.html con el contenido deseado para su página 404 personalizada.
Conclusión
Aprovechando controladores de excepciones, middleware o página personalizada respuestas, puede implementar fácilmente una página 404 No encontrada personalizada en FastAPI. Esto le permite brindar una experiencia más fácil de usar cuando no se puede encontrar un recurso solicitado, mejorando la experiencia general del usuario de su aplicación web.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3