تمديد Flask الذي يطبق التكوينات الشائعة على جميع تطبيقات Flask الخاصة بـ WebTeam.
from canonicalwebteam . flask_base . app import FlaskBase
app = FlaskBase ( __name__ , "app.name" )أو:
from canonicalwebteam . flask_base . app import FlaskBase
app = FlaskBase (
__name__ ,
"app.name" ,
template_404 = "404.html" ,
template_500 = "500.html" ,
favicon_url = "/static/favicon.ico" ,
)للتنمية المحلية ، من الأفضل اختبار هذه الوحدة مع أحد مشاريع موقع الويب لدينا مثل ubuntu.com. لمزيد من المعلومات ، اتبع هذا الدليل (داخلي فقط).
يتضمن FlaskBase ProxyFix لتجنب تجريد SSL على إعادة التوجيه.
يستخدم FlaskBase مراسلات yaml للسماح بسهولة تكوين عمليات إعادة التوجيه وإرجاع الاستجابات المحذوفة ، من خلال إنشاء redirects.yaml ، permanent-redirects.yaml والتحذف. deleted.yaml في دليل جذر الموقع.
يمكن لـ FlaskBase استخدام القوالب اختياريًا لإنشاء استجابات الخطأ 404 و 500 :
app = FlaskBase (
__name__ ,
"app.name" ,
template_404 = "404.html" ,
template_500 = "500.html" ,
) سيؤدي ذلك إلى EG http://localhost/non-existent-path بإعادة حالة 404 مع محتويات templates/404.html .
يمكن أن توفر FlaskBase اختياريًا إعادة توجيه للمسارات التي تم الاستعلام عنها بشكل شائع /favicon.ico ، /robots.txt و /humans.txt إلى مواقع معقولة:
from canonicalwebteam . flask_base . app import FlaskBase
app = FlaskBase (
__name__ ,
"app.name" ,
template_404 = "404.html" ,
template_500 = "500.html" ,
favicon_url = "/static/favicon.ico" ,
robots_url = "/static/robots.txt" ,
humans_url = "/static/humans.txt"
) سيؤدي ذلك إلى eg http://localhost/favicon.ico إعادة توجيه 302 إلى http://localhost/static/favicon.ico .
يقوم تلقائيًا بمسح جميع القطع المقطوعة من جميع الطرق.
يمكنك الحصول على اثنين من مساعدي Jinja2 لاستخدامها في القوالب الخاصة بك من القاعدة القميص:
now وظيفة تخرج التاريخ الحالي في التنسيق الذي تم تمريره - {{ now('%Y') }} -> YYYYversioned_static هي وظيفة تقوم بصمات الأصابع التي تم تمريرها - {{ versioned_static('asset.js') }} -> static/asset?v=asset-hashتحصل على الرؤوس التالية تلقائيًا:
X-Content-Type-Options: NOSNIFFPermissions-Policy: interest-cohort=()X-Frame-Options: SAMEORIGIN ، والذي يمكن exclude_xframe_options_headerCache-Control if response.cache_control.* لم يتم تعيينه ووفقًا لإصدار الأصول الثابتة (انظر versioned_static أعلاه)security.txt و robots.txt و humans.txt إذا قمت بإنشاء security.txt أو robots.txt أو humans.txt في جذر مشروعك ، فسيتم تقديمها على /.well-known/security.txt nownload/security.txt و /robots.txt و /humans.txt على التوالي.
/_status/check نقطة النهاية يضيف تلقائيًا نقطة النهاية /_status/check التي يتم استخدامها بواسطة آثار المحتوى لفحص الصحة الخلفية أو على سبيل المثال بواسطة K8s للتحقق من حالة القرون.
لتشغيل الاختبارات تنفيذ SECRET_KEY=fake python3 -m unittest discover tests .