Pengenalan
Apabila membuat aplikasi web, ia adalah penting untuk mengendalikan kod status HTTP dengan sewajarnya. Satu kod status biasa yang mungkin anda temui ialah 404 Not Found, yang menunjukkan bahawa sumber yang diminta tidak dapat ditemui. Artikel ini akan meneroka pelbagai kaedah untuk mengembalikan halaman 404 tersuai menggunakan FastAPI, rangka kerja Python moden untuk membina API web.
Pendekatan Pengendali Pengecualian
FastAPI menyediakan cara yang mudah untuk mengendalikan pengecualian melalui mekanisme pengendalian pengecualiannya. Anda boleh menentukan pengendali tersuai untuk mengendalikan pengecualian 404 dan mengembalikan respons tersuai.
<code class="python">@app.exception_handler(404) async def not_found_exception_handler(request: Request, exc: HTTPException): return RedirectResponse('https://fastapi.tiangolo.com')</code>
Sebagai alternatif, anda boleh menggunakan parameter exception_handlers kelas FastAPI untuk mendaftarkan pengendali pengecualian global.
<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>
Pendekatan Perisian Tengah
Pendekatan lain ialah mencipta perisian tengah yang memintas respons HTTP dan menyemak kod status. Jika kod status ialah 404, middleware boleh mengembalikan respons tersuai sebelum respons sampai kepada klien.
<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>
Respons Halaman Tersuai
Menggunakan kaedah yang dinyatakan di atas , anda boleh mengembalikan respons ubah hala yang mudah. Walau bagaimanapun, anda juga boleh mencipta halaman 404 yang lebih disesuaikan dengan mentakrifkan templat dan mengembalikan TemplateResponse.
<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>
Dalam direktori templat, buat templat 404.html dengan kandungan yang dikehendaki untuk halaman 404 tersuai anda.
Kesimpulan
Dengan memanfaatkan pengendali pengecualian, perisian tengah atau respons halaman tersuai, anda boleh dengan mudah melaksanakan halaman 404 Not Found tersuai dalam FastAPI. Ini membolehkan anda memberikan pengalaman yang lebih mesra pengguna apabila sumber yang diminta tidak ditemui, meningkatkan keseluruhan pengalaman pengguna aplikasi web anda.
Atas ialah kandungan terperinci Bagaimana untuk Membuat Halaman Tersuai 404 dalam FastAPI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!