Wie gehe ich mit benutzerdefinierten „404 Not Found'-Antworten in FastAPI um?

DDD
Freigeben: 2024-10-24 02:06:29
Original
927 Leute haben es durchsucht

How to Handle Custom 404 Not Found Responses in FastAPI?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!