플랫 페이지와 비슷하지만 템플릿이 있습니다.
이는 Django의 내장 contrib.flatpages
앱과 비슷하지만 데이터베이스가 없습니다. 그것은 파일 시스템에서 제공되는 정적 HTML 문서일 뿐입니다.
저는 오랫동안 flatpages
앱을 사용해 왔지만 어느 시점부터 플랫페이지 콘텐츠(html 조각)를 프로젝트의 나머지 부분과 함께 git repo에 보관하기 시작했습니다. 플랫 페이지를 변경할 때마다 로컬에서 파일을 편집하고 변경 사항을 커밋한 다음 새 콘텐츠를 복사하여 관련 플랫 페이지에 붙여넣었습니다.
내 템플릿 디렉토리에서 이를 제공하면 어떨까요?
이것이 바로 staticflatpages
하는 일입니다.
pip를 사용하여 최신 릴리스를 설치합니다.
pip install django-staticflatpages
이 앱의 최신 버전은 Django 2.1+ 및 Python 3.6+를 대상으로 합니다. 이전 버전의 Django에 대한 이전 릴리스를 다운로드하세요.
python manage.py test staticflatpages
로 테스트 스위트를 실행하고 문제가 발생하면 Github에서 이슈를 열 수 있습니다.
INSTALLED_APPS
에 staticflatpages
추가하세요.MIDDLEWARE
설정에 staticflatpages.middleware.StaticFlatpageFallbackMiddleware
를 추가하세요.staticflatpages
템플릿 디렉터리를 만듭니다. 이는 TEMPLATES
설정에 있는 템플릿 중 하나의 하위 디렉터리여야 합니다. 여기에 포함하는 모든 템플릿( base.html
제외)은 정적 페이지로 제공됩니다.예를 들어, 프로젝트 수준 템플릿 디렉터리 이름이 "templates"라고 가정하면 다음과 같습니다.
/about/
URL은 templates/staticflatpages/about.html
렌더링합니다./about/team/
URL은 templates/staticflatpages/about/team.html
렌더링합니다.templates/staticflatpages/index.html
)을 포함하고 /
에 매핑되는 다른 URL이 없으면 해당 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
파일을 참조하십시오.