フラットページに似ていますが、テンプレートが付いています
これは Django の組み込みcontrib.flatpages
アプリに似ていますが、データベースはありません。ファイルシステムから提供される単なる静的な 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 がない場合、それがインデックスとして使用されます。 このアプリは、静的フラットページのサイトマップもサポートしています。これらを有効にするには、 INSTALLED_APPS
設定にdjango.contrib.sitemaps
がリストされている必要があります。次に、サイトマップを設定します (ルート 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
ファイルを参照してください。