Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengendalikan Respons Custom 404 Not Found dalam 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!