إنها مثل الصفحات المسطحة، ولكن مع القوالب
وهذا يشبه تطبيق contrib.flatpages
المدمج في Django، ولكن بدون قاعدة البيانات. إنها مجرد مستندات HTML ثابتة يتم تقديمها من نظام الملفات الخاص بك.
لقد كنت أستخدم تطبيق flatpages
لفترة طويلة، ولكن في مكان ما على طول الخط بدأت في الاحتفاظ بمحتوى الصفحة المسطحة (مقتطفات من html) في git repo مع بقية مشروعي. في أي وقت أقوم فيه بإجراء تغيير على صفحة مسطحة، أقوم بتحرير الملف محليًا، وتنفيذ التغييرات، ثم نسخ المحتوى الجديد ولصقه في الصفحة المسطحة ذات الصلة.
لماذا لا يتم تقديمها فقط من دليل القوالب الخاص بي؟
هذا ما تفعله staticflatpages
.
قم بتثبيت الإصدار الأحدث باستخدام النقطة:
pip install django-staticflatpages
أحدث إصدار من هذا التطبيق يستهدف Django 2.1+ وPython 3.6+. قم بتنزيل إصدار سابق للإصدارات الأقدم من Django.
يمكنك تشغيل مجموعة الاختبار باستخدام python manage.py test staticflatpages
، وفتح مشكلة على Github إذا واجهت أي مشاكل.
staticflatpages
إلى INSTALLED_APPS
الخاص بك.staticflatpages.middleware.StaticFlatpageFallbackMiddleware
إلى إعدادات MIDDLEWARE
الخاصة بك.staticflatpages
. يجب أن يكون هذا دليلاً فرعيًا لأحد القوالب الموجودة في إعداد TEMPLATES
لديك. أي قوالب تقوم بتضمينها هنا (باستثناء base.html
) سيتم عرضها كصفحة ثابتة.على سبيل المثال، بافتراض أن دليل القالب على مستوى المشروع الخاص بك يسمى "القوالب"، إذن:
/about/
سوف يعرض templates/staticflatpages/about.html
/about/team/
سوف يعرض templates/staticflatpages/about/team.html
templates/staticflatpages/index.html
)، ولم يتم تعيين عنوان url آخر إلى /
، فسيتم استخدامه كفهرس خاص بك. يدعم هذا التطبيق أيضًا خرائط المواقع للصفحات المسطحة الثابتة. لتمكين هذه العناصر، ستحتاج إلى إدراج django.contrib.sitemaps
في إعداد INSTALLED_APPS
لديك. ثم قم بإعداد خريطة الموقع (على سبيل المثال في Root URLconf):
from staticflatpages.sitemaps import StaticFlatpageSitemap
sitemaps = {
'staticflatpages': StaticFlatpageSitemap,
}
لا تنس تضمين عناوين URL الخاصة بخرائط الموقع كالمعتاد، على سبيل المثال:
path(
'sitemap-<section>.xml',
sitemaps_views.sitemap,
{'sitemaps': sitemaps},
name='django.contrib.sitemaps.views.sitemap'
),
path(
'sitemap.xml',
sitemaps_views.index,
{'sitemaps': sitemaps},
name='django.contrib.sitemaps.views.sitemap'
),
ملاحظة : يتطلب إطار عمل sitemaps
أيضًا إطار عمل sites
، لذا ستحتاج إلى تثبيته، وستحتاج أيضًا إلى تحديد SITE_ID
.
إذا كنت تستخدم ميزة خرائط الموقع، فقد ترغب أيضًا في تضمين الإعدادات التالية:
STATICFLATPAGES_CHANGEFREQ
: يتوافق مع سمة Sitemap.changefreq
(الإعداد الافتراضي هو never
).STATICFLATPAGES_PRIORITY
: يتوافق مع سمة Sitemap.priority
(القيمة الافتراضية هي 0.5). يمكن أن يعمل هذا التطبيق مع Django-dirtyedit، والذي يسمح لك بتحرير الملفات من المسؤول (إذا كنت تميل إلى ذلك).
يتم توزيع هذا الرمز بموجب شروط ترخيص MIT. انظر ملف LICENSE
.