Wie gebe ich mit FastAPI eine benutzerdefinierte 404-Seite „Nicht gefunden“ zurück?
Wenn Sie auf einen 404-Antwortstatuscode stoßen, wird eine Standardfehlerseite angezeigt Wird normalerweise in Webanwendungen angezeigt. Möglicherweise möchten Sie jedoch eine benutzerdefinierte 404-Seite für ein persönlicheres Erlebnis bereitstellen. Mit FastAPI ist die Implementierung einer benutzerdefinierten 404-Seite unkompliziert.
Benutzerdefinierter Ausnahmehandler
Eine effektive Methode ist die Nutzung eines benutzerdefinierten Ausnahmehandlers. Durch Angabe des Statuscodes, den Sie verarbeiten möchten, können Sie einen gezielten Handler erstellen.
<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>
Exception-Handler-Parameter
Alternativ können Sie den Ausnahmehandler-Parameter von verwenden die FastAPI-Klasse.
<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>
Hinweis: In diesen Beispielen wird eine Umleitung durchgeführt. Sie können jedoch nach Bedarf jede benutzerdefinierte Antwort, HTMLResponse oder Jinja2 TemplateResponse zurückgeben.
Arbeitsbeispiel
Betrachten Sie das folgende Beispiel:
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 Vorlage
<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.html Vorlage
<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>
Das obige ist der detaillierte Inhalt vonWie gehe ich mit benutzerdefinierten „404 Not Found'-Antworten in FastAPI um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!