É como páginas planas, mas com modelos
É como o aplicativo contrib.flatpages
integrado do Django, mas sem o banco de dados. São apenas documentos HTML estáticos servidos no seu sistema de arquivos.
Eu uso o aplicativo flatpages
há muito tempo, mas em algum momento comecei a manter meu conteúdo de flatpage (snippets de html) no repositório git com o resto do meu projeto. Sempre que eu fazia uma alteração em uma página plana, eu editava o arquivo localmente, confirmava as alterações e, em seguida, copiava e colava o novo conteúdo na página plana relevante.
Por que não apenas servi-los no meu diretório de modelos?
Isso é o que staticflatpages
faz.
Instale a versão mais recente com pip:
pip install django-staticflatpages
A versão mais recente deste aplicativo é voltada para Django 2.1+ e Python 3.6+. Baixe uma versão anterior para versões mais antigas do Django.
Você pode executar o conjunto de testes com python manage.py test staticflatpages
e abrir um problema no Github se tiver algum problema.
staticflatpages
ao seu INSTALLED_APPS
.staticflatpages.middleware.StaticFlatpageFallbackMiddleware
às configurações MIDDLEWARE
.staticflatpages
. Este deve ser um subdiretório de um dos modelos na sua configuração TEMPLATES
. Todos os modelos incluídos aqui (exceto base.html
) serão veiculados como uma página estática.Por exemplo, supondo que seu diretório de modelos no nível do projeto seja denominado "modelos", então:
/about/
renderizará templates/staticflatpages/about.html
/about/team/
renderizará templates/staticflatpages/about/team.html
templates/staticflatpages/index.html
) e nenhum outro URL for mapeado para /
, ele será usado como seu índice. Este aplicativo também oferece suporte a mapas de sites para páginas planas estáticas. Para habilitá-los, você precisará ter django.contrib.sitemaps
listado em sua configuração INSTALLED_APPS
. Em seguida, configure um mapa do site (por exemplo, em seu Root URLconf):
from staticflatpages.sitemaps import StaticFlatpageSitemap
sitemaps = {
'staticflatpages': StaticFlatpageSitemap,
}
Não se esqueça de incluir os URLs dos seus sitemaps normalmente, por exemplo:
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 : A estrutura sitemaps
também requer a estrutura sites
, portanto você precisará dela instalada e também definirá um SITE_ID
.
Se você usar o recurso de sitemaps, também poderá incluir as seguintes configurações:
STATICFLATPAGES_CHANGEFREQ
: Corresponde ao atributo Sitemap.changefreq
(o padrão é never
).STATICFLATPAGES_PRIORITY
: corresponde ao atributo Sitemap.priority
(o padrão é 0,5). Este aplicativo pode funcionar com Django-dirtyedit, que permite editar arquivos do administrador (se você quiser).
Este código é distribuído sob os termos da licença do MIT. Veja o arquivo LICENSE
.