"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تقديم ملف HTML مخصص في المسار الجذر لـ FastAPI باستخدام StaticFiles؟

كيفية تقديم ملف HTML مخصص في المسار الجذر لـ FastAPI باستخدام StaticFiles؟

تم النشر بتاريخ 2024-11-11
تصفح:753

How to Serve a Custom HTML File in FastAPI's Root Path with StaticFiles?

كيفية تقديم ملف HTML محدد في مسار جذر FastAPI أثناء استخدام الملفات الثابتة

عند استخدام FastAPI مع StaticFiles لخدمة الملفات الثابتة، فإنك قد تواجه سيناريوهات حيث تريد تحميل ملف HTML مختلف (على سبيل المثال، custom.html) في المسار الجذر بدلاً من ملف Index.html الافتراضي. يمكن تحقيق ذلك من خلال فهم جوانب معينة من توجيه FastAPI ووظيفة StaticFiles.

فهم StaticFiles

وفقًا لوثائق Starlette، StaticFiles عبارة عن برنامج وسيط يتعامل مع خدمة الملفات الثابتة من دليل محدد. عندما يتم تعيين html=True، فإنه يبحث تلقائيًا عن ملفات Index.html في الدلائل ويقدمها وفقًا لذلك.

ترتيب التركيب

ترتيب تركيب الملفات الثابتة وتحديد ملفك تلعب نقاط النهاية دورًا حاسمًا. إذا تم تثبيت StaticFiles على المسار الجذر (أي /) وتم تعريفها قبل أي نقاط نهاية، فستكون لها الأسبقية وتتعامل مع جميع الطلبات، حتى إذا تم تعريف نقاط النهاية المخصصة لاحقًا.

تخصيص مسار الجذر

لخدمة ملف HTML محدد في المسار الجذر، يجب عليك اتباع الخطوات التالية:

  1. تحميل الملفات الثابتة إلى مسار منفصل (على سبيل المثال، /static) :

    app.mount('/static', StaticFiles(directory='static'))
  2. إنشاء نقطة نهاية مخصصة تُرجع ملف HTML المطلوب:

    @app.get('/')
    async def index():
        return FileResponse('custom.html')
  3. قم بتثبيت StaticFiles بعد تحديد نقطة النهاية المخصصة لضمان أسبقية نقطة النهاية.

اعتبارات إضافية

  • تأكد من وجود custom.html في الدليل الصحيح المحدد في مسار تحميل StaticFiles.
  • فهم أنه إذا تعامل StaticFiles مع طلب ولم يعثر على ملف بالمسار المطلوب، فسوف قم بإرجاع استجابة 404 لم يتم العثور عليها.
  • يوفر استخدام القوالب بدلاً من FileResponse المزيد من المرونة لتحديث ملفات HTML ديناميكيًا.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3