Comment renvoyer une page 404 introuvable personnalisée à l'aide de FastAPI ?
Lorsque vous rencontrez un code d'état de réponse 404, une page d'erreur par défaut est généralement affiché dans les applications Web. Cependant, vous souhaiterez peut-être fournir une page 404 personnalisée pour une expérience plus personnalisée. Grâce à FastAPI, la mise en œuvre d'une page 404 personnalisée est simple.
Gestionnaire d'exceptions personnalisé
Une méthode efficace consiste à exploiter un gestionnaire d'exceptions personnalisé. En spécifiant le code d'état que vous souhaitez gérer, vous pouvez créer un gestionnaire ciblé.
<code class="python">from fastapi.responses import RedirectResponse from fastapi.exceptions import HTTPException @app.exception_handler(404) async def not_found_exception_handler(request: Request, exc: HTTPException): return RedirectResponse('https://example.com/404')</code>
Paramètre des gestionnaires d'exceptions
Vous pouvez également utiliser le paramètre exception_handlers de la classe FastAPI.
<code class="python">from fastapi import FastAPI, Request def not_found_error(request: Request, exc: HTTPException): return RedirectResponse('https://example.com/404') exception_handlers = {404: not_found_error} app = FastAPI(exception_handlers=exception_handlers)</code>
Remarque : Dans ces exemples, une redirection est effectuée. Cependant, vous pouvez renvoyer n'importe quelle réponse personnalisée, réponse HTML ou réponse modèle Jinja2 selon vos besoins.
Exemple de travail
Considérez l'exemple suivant :
app.py
<code class="python">from fastapi.responses import RedirectResponse from fastapi.exceptions import HTTPException from fastapi import Request async def not_found_error(request: Request, exc: HTTPException): return RedirectResponse('https://example.com/404') async def internal_error(request: Request, exc: HTTPException): return RedirectResponse('https://example.com/500') exception_handlers = {404: not_found_error, 500: internal_error} app = FastAPI(exception_handlers=exception_handlers)</code>
404.html Modèle
<code class="html"><!DOCTYPE html> <html> <title>404 Not Found</title> <body> <h1>Not Found</h1> <p>The requested resource could not be found.</p> </body> </html></code>
500.htmlModèle
<code class="html"><!DOCTYPE html> <html> <title>500 Internal Server Error</title> <body> <h1>Internal Server Error</h1> <p>An internal error has occurred. Please try again later.</p> </body> </html></code>
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!