Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erstelle ich eine benutzerdefinierte 404-Seite in FastAPI?

Wie erstelle ich eine benutzerdefinierte 404-Seite in FastAPI?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-24 03:49:02208Durchsuche

How to Create a Custom 404 Page in FastAPI?

Wie gebe ich mit FastAPI eine benutzerdefinierte 404-Seite „Nicht gefunden“ zurück?

Einführung

Beim Erstellen von Webanwendungen ist dies unerlässlich um HTTP-Statuscodes angemessen zu behandeln. Ein häufiger Statuscode, auf den Sie möglicherweise stoßen, ist 404 Not Found, was darauf hinweist, dass eine angeforderte Ressource nicht gefunden werden konnte. In diesem Artikel werden verschiedene Methoden zum Zurückgeben einer benutzerdefinierten 404-Seite mithilfe von FastAPI, einem modernen Python-Framework zum Erstellen von Web-APIs, untersucht.

Ausnahmehandler-Ansatz

FastAPI bietet eine praktische Möglichkeit um Ausnahmen über seinen Ausnahmebehandlungsmechanismus zu behandeln. Sie können einen benutzerdefinierten Handler für die Behandlung der 404-Ausnahme definieren und eine benutzerdefinierte Antwort zurückgeben.

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

Alternativ können Sie den Parameter „Exception_handlers“ der FastAPI-Klasse verwenden, um einen globalen Ausnahmehandler zu registrieren.

<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>

Middleware-Ansatz

Ein anderer Ansatz besteht darin, eine Middleware zu erstellen, die HTTP-Antworten abfängt und auf den Statuscode prüft. Wenn der Statuscode 404 ist, kann die Middleware eine benutzerdefinierte Antwort zurückgeben, bevor die Antwort den Client erreicht.

<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>

Benutzerdefinierte Seitenantwort

Verwendung der oben genannten Methoden können Sie eine einfache Umleitungsantwort zurückgeben. Sie können jedoch auch eine individuellere 404-Seite erstellen, indem Sie eine Vorlage definieren und eine TemplateResponse zurückgeben.

<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>

Erstellen Sie im Vorlagenverzeichnis eine 404.html-Vorlage mit dem gewünschten Inhalt für Ihre benutzerdefinierte 404-Seite.

Fazit

Durch die Nutzung von Ausnahmehandlern, Middleware oder benutzerdefinierten Seitenantworten können Sie ganz einfach eine benutzerdefinierte „404 Not Found“-Seite in FastAPI implementieren. Dadurch können Sie eine benutzerfreundlichere Erfahrung bieten, wenn eine angeforderte Ressource nicht gefunden werden kann, und so die allgemeine Benutzererfahrung Ihrer Webanwendung verbessern.

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine benutzerdefinierte 404-Seite in FastAPI?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn