Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengendalikan Respons Custom 404 Not Found dalam FastAPI?

Bagaimana untuk Mengendalikan Respons Custom 404 Not Found dalam FastAPI?

DDD
DDDasal
2024-10-24 02:06:29976semak imbas

How to Handle Custom 404 Not Found Responses in FastAPI?

Bagaimana untuk Mengembalikan Halaman Tersuai 404 Tidak Ditemui Menggunakan FastAPI?

Apabila anda menemui kod status respons 404, halaman ralat lalai ialah biasanya dipaparkan dalam aplikasi web. Walau bagaimanapun, anda mungkin mahu menyediakan halaman 404 tersuai untuk pengalaman yang lebih diperibadikan. Menggunakan FastAPI, melaksanakan halaman 404 tersuai adalah mudah.

Pengendali Pengecualian Tersuai

Kaedah yang berkesan ialah memanfaatkan pengendali pengecualian tersuai. Dengan menyatakan kod status yang anda mahu kendalikan, anda boleh mencipta pengendali yang disasarkan.

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

Parameter Pengendali Pengecualian

Sebagai alternatif, anda boleh menggunakan parameter exception_handlers bagi kelas FastAPI.

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

Nota: Dalam contoh ini, ubah hala dilakukan. Walau bagaimanapun, anda boleh mengembalikan sebarang Respons tersuai, HTMLResponse atau Jinja2 TemplateResponse mengikut keperluan.

Contoh Berfungsi

Pertimbangkan contoh berikut:

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 Templat

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

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

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Respons Custom 404 Not Found dalam FastAPI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn