프로젝트 템플릿¶
기본적으로 wagtail start 명령(예: wagtail start mysite)을 실행하면 다음과 같은 구조의 새 Django 프로젝트가 생성됩니다.
mysite/
home/
migrations/
__init__.py
0001_initial.py
0002_create_homepage.py
templates/
home/
home_page.html
__init__.py
models.py
search/
templates/
search/
search.html
__init__.py
views.py
mysite/
settings/
__init__.py
base.py
dev.py
production.py
static/
css/
mysite.css
js/
mysite.js
templates/
404.html
500.html
base.html
__init__.py
urls.py
wsgi.py
Dockerfile
manage.py
requirements.txt
사용자 지정 템플릿 사용¶
대신 사용자 지정 템플릿을 사용하려면 wagtail start 명령을 실행할 때 --template 옵션을 지정할 수 있습니다. 이 옵션은 사용자 지정 프로젝트 템플릿의 디렉터리, 파일 경로 또는 URL을 허용합니다(django-admin startproject --template 와 유사).
예를 들어, GitHub 리포지토리로 호스팅되는 사용자 지정 템플릿의 경우 다음과 같은 URL을 사용할 수 있습니다.
wagtail start myproject --template=https://github.com/githubuser/wagtail-awesome-template/archive/main.zip
프로젝트에 사용할 수 있는 사용자 지정 템플릿 목록은 템플릿(시작 명령)을 참조하십시오.
기본 프로젝트 템플릿¶
다음 섹션은 기본 프로젝트 템플릿에 대한 참조입니다.
“home” 앱¶
위치: /mysite/home/
이 앱은 앱을 처음 설정할 때 홈페이지를 만들고 Wagtail이 사용하도록 구성하는 마이그레이션과 함께 HomePage 모델을 제공하여 더 빠르게 시작할 수 있도록 돕습니다.
기본 템플릿 및 정적 파일¶
위치: /mysite/mysite/templates/ 및 /mysite/mysite/static/
templates 디렉터리에는 base.html, 404.html 및 500.html 이 포함되어 있습니다. 이 파일들은 Wagtail 사이트에서 매우 일반적으로 필요하므로 템플릿에 추가되었습니다.
static 디렉터리에는 비어 있는 JavaScript 및 CSS 파일이 포함되어 있습니다.
Django 설정¶
위치: /mysite/mysite/settings/
Django 설정 파일은 base.py, dev.py, production.py 및 local.py 로 분할됩니다.
base.py이 파일은 개발 및 프로덕션 모두에서 사용될 전역 설정용입니다. 대부분의 구성을 이 파일에 유지하는 것을 목표로 합니다.dev.py이 파일은 개발자만 사용할 설정용입니다. 예:DEBUG = Trueproduction.py이 파일은 프로덕션 서버에서만 실행될 설정용입니다. 예:DEBUG = Falselocal.py이 파일은 특정 머신에 로컬인 설정용입니다. 이 파일은 버전 제어 시스템에서 추적되어서는 안 됩니다.
참고
프로덕션 서버에서는 local.py 에만 비밀(예: API 키 및 암호)을 저장하는 것이 좋습니다. 이렇게 하면 서버가 제대로 작동하지 않는 이유를 디버깅하려고 할 때 나중에 골치 아픈 일을 피할 수 있습니다. 다른 설정이 필요한 여러 서버를 사용하는 경우 각 서버에 대해 다른 production.py 파일을 만드는 것이 좋습니다.
Dockerfile¶
위치: /mysite/Dockerfile
사이트를 Docker 컨테이너로 빌드하고 배포하기 위한 구성을 포함합니다. 프로젝트의 Docker 이미지를 빌드하고 사용하려면 다음을 실행하십시오.
docker build -t mysite .
docker run -p 8000:8000 mysite
사용자 지정 템플릿 작성¶
사용자 지정 템플릿의 몇 가지 예시.
사용자 지정 템플릿을 생성하려고 할 때 오류가 발생할 수 있습니다. 이는 --template 옵션이 사용자 지정 템플릿의 템플릿 파일을 구문 분석하려고 시도하기 때문입니다. 이 오류를 피하려면 각 템플릿 파일의 코드를 다음과 같이 {% verbatim %}{% endverbatim %} 태그로 래핑하십시오.
{% verbatim %}
{% extends "base.html" %}
{% load wagtailcore_tags %}
{% block body_class %}template-blogindexpage{% endblock %}
{% block content %}
<h1>{{ page.title }}</h1>
<div class="intro">{{ page.intro|richtext }}</div>
{% for post in page.get_children %}
<h2><a href="{% pageurl post %}">{{ post.title }}</a></h2>
{{ post.specific.intro }}
{{ post.specific.body }}
{% endfor %}
{% endblock %}
{% endverbatim %}