Maison >développement back-end >Tutoriel Python >Comment créer une page 404 personnalisée dans 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!