Maison >développement back-end >Tutoriel Python >Comment créer une page 404 personnalisée dans FastAPI ?

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

Patricia Arquette
Patricia Arquetteoriginal
2024-10-24 03:49:02269parcourir

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, c'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 créer des 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.

<code class="python">@app.exception_handler(404)
async def not_found_exception_handler(request: Request, exc: HTTPException):
    return RedirectResponse('https://fastapi.tiangolo.com')</code>

Vous pouvez également utiliser le paramètre exception_handlers de la classe FastAPI pour enregistrer un gestionnaire d'exception global.

<code class="python">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)</code>

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.

<code class="python">@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</code>

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.

<code class="python">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)</code>

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, des middlewares ou des réponses de page personnalisées, 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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn