„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie erstelle ich eine benutzerdefinierte 404-Seite in FastAPI?

Wie erstelle ich eine benutzerdefinierte 404-Seite in FastAPI?

Veröffentlicht am 26.11.2024
Durchsuche:954

How to Create a Custom 404 Page in FastAPI?

Wie gebe ich mit FastAPI eine benutzerdefinierte „404 Not Found“-Seite 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 stoßen können, 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.

Exception-Handler-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.

@app.exception_handler(404)
async def not_found_exception_handler(request: Request, exc: HTTPException):
    return RedirectResponse('https://fastapi.tiangolo.com')

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

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)

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.

@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

Benutzerdefinierte Seitenantwort

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

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)

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.

Freigabeerklärung Dieser Artikel wird reproduziert unter: 1729691392 Wenn ein Verstoß vorliegt, wenden Sie sich bitte an [email protected], um ihn zu löschen.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3