Django 템플릿 언어
템플릿의 변수는 템플릿이 평가될때 값으로 대치되며 태그는 템플릿의 로직을 제어한다.
변수 {{ variable }}
템플릿 엔진이 변수를 만나면 결과로 치환. {{ 변수이름.속성 }}
e.g {{section.title}}
필터 : 변수의 표시에 변화 . {{ 변수|필터}}
e.g {{story.headline|upper}} 대문자로 출력.
{{ list|join:", " }} list를 쉼표과 공백으로 join.
- for instance;
변수가 false 또는 비어 있는 경우, 지정된 defalut를 사용
value가 제공되지 않았거나 비어 있는 경우, 위에서는 “nothing“을 출력.
값의 길이를 반환합니다. 문자열과 목록에 대하여 사용할 수 있습니다. 예:
value가 ['a', 'b', 'c', 'd']라면, 결과는 4.
S모든 [X]HTML 태그를 제거.
value가 "<b>Joel</b> <button>is</button> a <span>slug</span>"인 경우, 결과는 "Joel is a slug".
※ 내장필터 reference 또는 직접 만들수 있음.
태그 {% tag %}
텍스트 생성, 루프 혹은 로직 수행 등.
-for instance;
- for
- 반복 루프. 예를 들어, athlete_list 리스트의 모든 name 속성을 출력.
- if and else
변수가 “true”이면 블록의 컨텐츠를 표시
athlete_list가 비어있지 않다면, {{ athlete_list|length }} 변수에 의하여 선수의 숫자 출력.
또한 if 태그 내에 필터 및 각종 연산자 사 가능.
주석 {# #}
주석은 다음과 같이 템플릿 코드가 유효하든 아니든 간에 포함시킬 수 있음.
단, 이 구문은 단일 행 주석에만 사용가능.
템플릿 상속
상속을 통해 사이트에서 공통부분을 가진 기초 골격 템플릿(base.html)만들고, 자식 템플릿이 덮어쓰게 될 block 정의한다.
base.html (부모 Template)
base템플릿 즉, 기본골격이 될 부모 템플릿의 비어있는 블록의 content를 채우는 것은 자식 템플릿이 할 일이다.
block태그 : 템플릿 엔진에게 자식 템플릿이 그 부분을 덮어 쓸 것이라고 알려줌.
example.html (자식 Template)
extends 태그: 템플릿 엔진에게 이 템플릿은 다른템플릿(부모)을 확장한다고 알림.
그때, 템플릿 엔진은 base.html에 있는 세 개의 block 태그를 알아차리고 자식 템플릿의 내용으로 치환.
이러한 접근방법을 통해 코드 재사용을 극대화 시키고, 섹션 내의 네비게이션과 같이 공유된 컨텐츠부분에 항목을 쉽게 추가할 수 있다.
☆ 상속 활용 Tips.
- {% extends %} :템플릿의 첫 태그로 두어야 상속작동.
- 기본 템플릿에서 {% block %} 태그를 최대한 활용할 것.
- 중복 코드 발생시 부모 템플릿의 {% block %} 으로 이동하여 사용할것.
- 부모 블록의 내용을 완전히 덮어쓰지 않고 일부만 추가하고자 할때는 {{ block.super }}를 사용.
- {% endblock %}에 태그 이름 붙이기. > {% endblock content%}: 가독성 용이.
Accessing method calls. 메소드 호출 엑세스.
'Back-end > Python' 카테고리의 다른 글
[Python]Django Static 파일. (0) | 2018.03.25 |
---|---|
[Python]Django App 이란? MTV 패턴이란? (0) | 2018.03.24 |
[Python]장고 앱 생성 ch2. DB, model 생성. (0) | 2018.03.20 |
[Python]장고앱 프로젝트 ch1. 프로젝트, 앱 생성하기 (0) | 2018.03.20 |