본문 바로가기

웹/Django

[Django] 템플릿 언어 (Template Language) / 2021.08.27

* 참고 자료 : 코드잇 Django 강의


템플릿 언어는 장고가 Template을 작성할 때 보다 편리하게 작성할 수 있도록 도와주는 것이다.
쉽게 말해, html을 작성할 때 프로그래밍을 하듯 작성할 수 있도록 해준다.

1. 템플릿 언어
템플릿 언어는 크게 4가지로 구분할 수 있다.

(1) 템플릿 변수 : 우리가 지정한 데이터로 변환

{{ 변수명 }}


view에서 template으로 원하는 데이터를 전달하고 template은 이 템플릿 변수를 이용해서 전달받은 데이터를 사용한다.
즉, 템플릿 변수는 view에서 템플릿으로 넘겨준 데이터로 해석되어서 변환된다.
그리고 템플릿 변수는 점 연산자를 지원한다.

{{ 변수명.속성 }}


이 점 연산자는 변수의 내부 속성에 접근할 때 사용한다.
다음과 같은 순서로 접근을 시도한다.

1. 변수를 사전형(dict)으로 생각하고 점 연산자로 Key값 조회
2. 변수를 객체로 생각하고 내부 속성 값 조회 또는 함수 호출
3. 변수를 리스트(list)로 생각하고 점 연산자로 Index 조회

(2) 템플릿 태그 : 템플릿 작성에 로직을 사용

{% 태그 %} {% end 태그 %}


템플릿 태그는 시작 태그와 종료 태그를 명시해서 사용한다.

2 - 1) 반복 태그

{% for %}
{% endfor %}


for를 이용해서 반복을 사용할 수 있다.

2 - 2) 조건 태그

{% if %}
{% else %}
{% endif %}


if를 이용해서 조건을 사용할 수 있다.

2 - 3) 상속 태그

{% block %}
{% endblock %}


block을 이용해서 상속을 사용할 수있다.


(3) 템플릿 필터 : 템플릿 변수를 특정 형식으로 변환

{{ 변수명 | 필터 }}


3 - 1) default
참조하는 템플릿 변수가 비어 있거나 bool형 False일 경우 변환되는 값을 지정한다.

{{ varialbe|default:"star" }}


변수가 비어 있거나 False면 star라는 텍스트로 대체된다.

3 - 2) capfirst
맨 첫 글자를 대문자로 바꿔 준다.

3 - 3) random
반복 가능한 템플릿 변수에 대해 무작위로 하나를 추출해 변환한다.

{{ variable|random }}


만약 variable이 ["a", "b", "c", "d" ]인 리스트라면 템플릿 변수가 리스트 내의 하나의 원소로 대체된다.

3 - 4) upper & lower
템플릿 변수를 대문자(upper)또는 소문자(lower)로 변환한다.

3 - 5) ljust & rjust
주어진 길이 내에서 공백을 넣어 왼쪽 정렬(ljust) 또는 오른쪽 정렬(rjust)을 한 문자열로 변환한다.

{{ variable|ljust:"length" }}, {{ variable|rjust:"length" }}


만약 variable이 star일 때 {{ variable|ljust:"10" }}이라면 "star______"가 된다.


(4) 템플릿 주석 : 템플릿 언어의 주석처리를 담당

{# 주석 #}