"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment créer une page 404 personnalisée dans FastAPI ?

Comment créer une page 404 personnalisée dans FastAPI ?

Publié le 2024-11-26
Parcourir:243

How to Create a Custom 404 Page in FastAPI?

Comment renvoyer une page 404 introuvable personnalisée à l'aide de FastAPI ?

Introduction

Lors de la création d'applications Web, il est essentiel pour gérer les codes d'état HTTP de manière appropriée. Un code d'état courant que vous pouvez rencontrer est 404 Not Found, qui indique qu'une ressource demandée est introuvable. Cet article explorera différentes méthodes pour renvoyer une page 404 personnalisée à l'aide de FastAPI, un framework Python moderne pour la création d'API Web.

Approche du gestionnaire d'exceptions

FastAPI fournit un moyen pratique pour gérer les exceptions via son mécanisme de gestion des exceptions. Vous pouvez définir un gestionnaire personnalisé pour gérer l'exception 404 et renvoyer une réponse personnalisée.

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

Vous pouvez également utiliser le paramètre exception_handlers de la classe FastAPI pour enregistrer un gestionnaire d'exceptions 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)

Approche middleware

Une autre approche consiste à créer un middleware qui intercepte les réponses HTTP et vérifie le code d'état. Si le code d'état est 404, le middleware peut renvoyer une réponse personnalisée avant que la réponse n'atteigne le client.

@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

Réponse de page personnalisée

En utilisant les méthodes mentionnées ci-dessus, vous pouvez renvoyer une simple réponse de redirection. Cependant, vous pouvez également créer une page 404 plus personnalisée en définissant un modèle et en renvoyant une 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)

Dans le répertoire des modèles, créez un modèle 404.html avec le contenu souhaité pour votre page 404 personnalisée.

Conclusion

En tirant parti des gestionnaires d'exceptions, du middleware ou de la page personnalisée réponses, vous pouvez facilement implémenter une page 404 Not Found personnalisée dans FastAPI. Cela vous permet de fournir une expérience plus conviviale lorsqu'une ressource demandée est introuvable, améliorant ainsi l'expérience utilisateur globale de votre application Web.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729691392. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3