مقدمة
عند إنشاء تطبيقات الويب، من الضروري للتعامل مع رموز حالة HTTP بشكل مناسب. أحد رموز الحالة الشائعة التي قد تواجهها هو 404 لم يتم العثور عليه، والذي يشير إلى تعذر العثور على المورد المطلوب. ستستكشف هذه المقالة طرقًا مختلفة لإرجاع صفحة 404 مخصصة باستخدام FastAPI، وهو إطار عمل Python حديث لإنشاء واجهات برمجة تطبيقات الويب.
نهج معالج الاستثناء
يوفر FastAPI طريقة ملائمة للتعامل مع الاستثناءات عبر آلية معالجة الاستثناءات الخاصة بها. يمكنك تحديد معالج مخصص للتعامل مع الاستثناء 404 وإرجاع استجابة مخصصة.
@app.exception_handler(404)
async def not_found_exception_handler(request: Request, exc: HTTPException):
return RedirectResponse('https://fastapi.tiangolo.com')
بدلاً من ذلك، يمكنك استخدام معلمة Exception_handlers لفئة FastAPI لتسجيل معالج الاستثناء العام.
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)
نهج البرامج الوسيطة
هناك طريقة أخرى تتمثل في إنشاء برنامج وسيط يعترض استجابات HTTP ويتحقق من رمز الحالة. إذا كان رمز الحالة هو 404، فيمكن للبرامج الوسيطة إرجاع استجابة مخصصة قبل أن تصل الاستجابة إلى العميل.
@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
استجابة الصفحة المخصصة]
باستخدام الطرق المذكورة أعلاه، يمكنك إرجاع استجابة إعادة توجيه بسيطة. ومع ذلك، يمكنك أيضًا إنشاء صفحة 404 أكثر تخصيصًا عن طريق تحديد قالب وإرجاع TemplateResponse.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)
في دليل القوالب، قم بإنشاء قالب 404.html بالمحتوى المطلوب لصفحة 404 المخصصة الخاصة بك.
الاستنتاج
من خلال الاستفادة من معالجات الاستثناءات أو البرامج الوسيطة أو الصفحة المخصصة الردود، يمكنك بسهولة تنفيذ صفحة 404 غير موجودة مخصصة في FastAPI. يتيح لك هذا توفير تجربة أكثر سهولة في الاستخدام عندما لا يمكن العثور على المورد المطلوب، مما يعزز تجربة المستخدم الشاملة لتطبيق الويب الخاص بك.تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3