Bagaimana untuk Mengendalikan Respons Custom 404 Not Found dalam FastAPI?

DDD
Lepaskan: 2024-10-24 02:06:29
asal
927 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!