É 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.htmltemplates/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 .