Django Template
project/settings.py
에 TEMPLATES 관련 설정을 하고 있는 것을 볼 수 있다. 여기서는 어떻게 tmeplate을 불러오고 렌더링 할 것인지를 설정할 수 있다.
'APP_DIRS': True
는 INSTALLED_APPS 디렉토리의 templates 하위 디렉토리를 탐색한다.
Template 파일 생성하기
템플릿을 생성할 app 디렉토리 하위에 templates 디렉토리를 생성한다. templates 디렉토리 하위에 polls 디렉토리 내부에 index.html
파일을 생성해준다.
polls/templates/polls/index.html
과 같은 형태가 된다. 여기서 왜 templates 디렉토리 하위에 polls 디렉토리를 생성해준걸까?Django에서는 이름이 일치하는 첫번째 template을 선택한다. 만약 동일한 template이 다른 어플리케이션에 있을 경우에 이 둘의 차이를 구분하지 못한다. 가장 정확한 template을 지정하기 위해서 가장 편리한 방법은 이름공간으로 구분짓는 것이다.
Template 언어
HTML(정적)에 파이썬 코드(동적)를 바로 넣을 수 없다. template tag{}
는 파이썬을 HTML으로 바꾸어 빠르고 쉽게 동적인 웹사이트를 만들 수 있다.
ruby에서는
html.erb
{{변수}}
{{변수}}
context로 전달된 변수를 템플릿에서 값을 출력하려면 다음과 같이 중괄호 안에 변수이름을 넣어서 표시할 수 있다.
{%%}
템플릿 태그
{%%}
템플릿 태그`
` 태그 안에는 python의 for문, if문과 같이 탬플릿의 로직을 제어한다.
{{ | }}
필터
{{ | }}
필터템플릿 필터는 변수의 값을 특정한 포맷으로 변형하는 기능을 한다. 이때 |
파이프를 사용해 필터를 적용한다.
예를 들어, 날짜를 특정 날짜 포맷으로 변경하거나, 문자열을 대,소문자로 변경하는 기능을 할 수 있다.
내장 필터 레퍼런스 에서 전체 목록을 볼 수 있으며, 템플릿 필터를 직접 만들 수 있다.
`` 주석
템필릿에서 주석구문은 {# #}
이다.
HTML Escape
HTML 내용중에 <,>,',",&
과 같은 문자들이 있으면 그 문자에 상응하는 HTML Entity로 변환해주어야한다.
템플릿에서 이러한 작업을 자동으로 처리해주기 위해서 `
템플릿 태그나
escape` 템플릿 필터를 사용한다.
참조
Last updated