Es como páginas planas, pero con plantillas.
Esto es como la aplicación contrib.flatpages
incorporada de Django, pero sin la base de datos. Son solo documentos html estáticos servidos desde su sistema de archivos.
He estado usando la aplicación flatpages
durante mucho tiempo, pero en algún momento comencé a mantener el contenido de mi página plana (fragmentos de html) en el repositorio de git con el resto de mi proyecto. Cada vez que hacía un cambio en una página plana, editaba el archivo localmente, confirmaba los cambios y luego copiaba y pegaba el nuevo contenido en la página plana correspondiente.
¿Por qué no publicarlos simplemente desde mi directorio de plantillas?
Eso es lo que hace staticflatpages
.
Instale la última versión con pip:
pip install django-staticflatpages
La versión más reciente de esta aplicación está dirigida a Django 2.1+ y Python 3.6+. Descargue una versión anterior para versiones anteriores de Django.
Puede ejecutar el conjunto de pruebas con python manage.py test staticflatpages
y abrir un problema en Github si tiene algún problema.
staticflatpages
a sus INSTALLED_APPS
.staticflatpages.middleware.StaticFlatpageFallbackMiddleware
a su configuración MIDDLEWARE
.staticflatpages
. Este debería ser un subdirectorio de una de las plantillas en su configuración TEMPLATES
. Cualquier plantilla que incluya aquí (excepto base.html
) se mostrará como una página estática.Por ejemplo, suponiendo que el directorio de plantillas a nivel de proyecto se llame "plantillas", entonces:
/about/
mostrará templates/staticflatpages/about.html
/about/team/
mostrará templates/staticflatpages/about/team.html
templates/staticflatpages/index.html
) y ninguna otra URL se asigna a /
, se utilizará como su índice. Esta aplicación también admite mapas de sitio para páginas planas estáticas. Para habilitarlos, necesitará tener django.contrib.sitemaps
listado en su configuración INSTALLED_APPS
. Luego, configure un mapa del sitio (por ejemplo, en su URLconf raíz):
from staticflatpages.sitemaps import StaticFlatpageSitemap
sitemaps = {
'staticflatpages': StaticFlatpageSitemap,
}
No olvide incluir las URL de sus mapas de sitio como de costumbre, por ejemplo:
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'
),
NOTA : El marco de sitemaps
también requiere el marco sites
, por lo que deberá instalarlo y también deberá definir un SITE_ID
.
Si utiliza la función de mapas del sitio, es posible que también desee incluir las siguientes configuraciones:
STATICFLATPAGES_CHANGEFREQ
: Corresponde al atributo Sitemap.changefreq
(el valor predeterminado es never
).STATICFLATPAGES_PRIORITY
: Corresponde al atributo Sitemap.priority
(el valor predeterminado es 0,5). Esta aplicación podría funcionar con django-dirtyedit, que le permite editar archivos desde el administrador (si así lo desea).
Este código se distribuye bajo los términos de la licencia MIT. Ver el archivo LICENSE
.