Это похоже на плоские страницы, но с шаблонами
Это похоже на встроенное приложение contrib.flatpages
в Django, но без базы данных. Это просто статические HTML-документы, загружаемые из вашей файловой системы.
Я использую приложение flatpages
в течение долгого времени, но где-то в процессе я начал хранить содержимое плоской страницы (фрагменты HTML) в репозитории git вместе с остальной частью моего проекта. Каждый раз, когда я вносил изменения в плоскую страницу, я редактировал файл локально, фиксировал изменения, а затем копировал и вставлял новый контент в соответствующую плоскую страницу.
Почему бы просто не использовать их из моего каталога шаблонов?
Это то, что делает staticflatpages
.
Установите последнюю версию с помощью pip:
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
), будут использоваться как статическая страница.Например, если каталог шаблонов вашего проекта называется «templates», то:
/about/
будет отображать templates/staticflatpages/about.html
/about/team/
будет отображать templates/staticflatpages/about/team.html
templates/staticflatpages/index.html
) и никакие другие URL-адреса не сопоставляются с /
, он будет использоваться в качестве вашего индекса. Это приложение также поддерживает карты сайта для статических плоских страниц. Чтобы включить их, вам необходимо указать django.contrib.sitemaps
в настройках INSTALLED_APPS
. Затем настройте карту сайта (например, в конфигурации корневого URL-адреса):
from staticflatpages.sitemaps import StaticFlatpageSitemap
sitemaps = {
'staticflatpages': StaticFlatpageSitemap,
}
Не забудьте включить URL-адреса файлов Sitemap, как обычно, например:
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
.