C'est comme des pages plates, mais avec des modèles
C'est comme l'application contrib.flatpages
intégrée de Django, mais sans la base de données. Ce ne sont que des documents HTML statiques servis à partir de votre système de fichiers.
J'utilise l'application flatpages
depuis longtemps, mais quelque part, j'ai commencé à conserver le contenu de ma page plate (extraits de code HTML) dans le dépôt git avec le reste de mon projet. Chaque fois que j'apportais une modification à une page plate, je modifiais le fichier localement, validais les modifications, puis copiais et collais le nouveau contenu dans la page plate appropriée.
Pourquoi ne pas simplement les proposer à partir de mon répertoire de modèles ?
C'est ce que fait staticflatpages
.
Installez la dernière version avec pip :
pip install django-staticflatpages
La version la plus récente de cette application cible Django 2.1+ et Python 3.6+. Téléchargez une version précédente pour les anciennes versions de Django.
Vous pouvez exécuter la suite de tests avec python manage.py test staticflatpages
et ouvrir un problème sur Github si vous rencontrez des problèmes.
staticflatpages
à votre INSTALLED_APPS
.staticflatpages.middleware.StaticFlatpageFallbackMiddleware
à vos paramètres MIDDLEWARE
.staticflatpages
. Il doit s'agir d'un sous-répertoire de l'un des modèles dans votre paramètre TEMPLATES
. Tous les modèles que vous incluez ici (à l'exception d'un base.html
) seront servis sous forme de page statique.Par exemple, en supposant que votre répertoire de modèles au niveau du projet soit nommé « modèles », alors :
/about/
affichera templates/staticflatpages/about.html
/about/team/
affichera templates/staticflatpages/about/team.html
templates/staticflatpages/index.html
) et qu'aucune autre URL ne correspond à /
, il sera utilisé comme index. Cette application prend également en charge les plans de site pour les pages plates statiques. Pour les activer, vous devrez avoir django.contrib.sitemaps
répertorié dans votre paramètre INSTALLED_APPS
. Ensuite, configurez un plan du site (par exemple dans votre configuration d'URL racine) :
from staticflatpages.sitemaps import StaticFlatpageSitemap
sitemaps = {
'staticflatpages': StaticFlatpageSitemap,
}
N'oubliez pas d'inclure les URL de vos plans de site comme d'habitude, par exemple :
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'
),
REMARQUE : Le framework sitemaps
nécessite également le framework sites
, vous devrez donc l'installer et vous devrez également définir un SITE_ID
.
Si vous utilisez la fonctionnalité de plans de site, vous souhaiterez peut-être également inclure les paramètres suivants :
STATICFLATPAGES_CHANGEFREQ
: Correspond à l'attribut Sitemap.changefreq
(par défaut never
).STATICFLATPAGES_PRIORITY
: Correspond à l'attribut Sitemap.priority
(par défaut à 0,5). Cette application pourrait fonctionner avec Django-dirtyedit, qui vous permet de modifier des fichiers depuis l'administrateur (si vous le souhaitez).
Ce code est distribué selon les termes de la licence MIT. Voir le fichier LICENSE
.