WEB

[Django 02] Django Template Language(DTL)

mhko411 2021. 3. 8. 23:32
728x90

Django에서 Template에 제공하는 기능으로 변수, 조건, 반복 등을 HTML 문서에서 실행할 수 있다. views.py에서 렌더링을 할 때 해당 HTML에 문서에 변수도 함께 전달하여 HTML 문서 내에서 views.py에 정의된 함수에서 처리된 데이터를 활용할 수 있다.


Variables

변수는 다음과 같이 사용할 수 있으며 두 개의 중괄호 안에 변수를 대입하면 템플릿 엔진이 적절한 값으로 변환한다. 변수 이름은 영문자와 "_"로 구성될 수 있으며 "_"로 시작할 수는 없다.

점(.)을 사용하여 변수의 속성에 접근할 수도 있다.

{{ Variable }}

 

Filters

필터를 사용하여 변수를 수정할 수 있다. 필터는 아래와 같이 변수 다음에 "|"으로 사용할 수 있다.

{{ Variable | Filter }}

아래처럼 사용한다면 이름이 입력된 변수 name을 소문자로 변환하게 된다. 이처럼 Django에서는 60여개의 템플릿 필터를 제공한다. (필터만 따로 사용해보고 정리를 해야겠다.)

{{ name|lower }}

 

Tags

태그를 통해 반복문과 조건문 등을 처리할 수 있다. 태그에는 여는 태그와 닫는 태그가 존재하며 기본적인 틀은 다음과 같다.

{% tag %} content {% endtag %}

다음은 태그를 통해 if문을 사용하는 것이다. 프로그래밍 언어에서 사용하는 if-else와 비슷하다.

{% if athlete_list %}
    Number of athletes: {{ athlete_list|length }}
{% elif athlete_in_locker_room_list %}
    Athletes should be out of the locker room soon!
{% else %}
    No athletes.
{% endif %}

다음은 태그를 통해 for문을 사용하는 것이다. 기본적으로 python과 비슷하다는 느낌을 받았다. 

{% for athlete in athlete_list %}
    <li>{{ athlete.name }}</li>
{% endfor %}

 

Comments

다음의 형태로 주석도 사용할 수 있다.

{# #}

'WEB' 카테고리의 다른 글

[Django 04] URL 분리하기  (0) 2021.03.09
[Django 03] 템플릿 상속  (0) 2021.03.08
[Django 01] 첫 번째 프로젝트 생성하기  (0) 2021.03.08
[Django 00] Intro  (0) 2021.03.08
[CSS] flex 속성  (0) 2021.01.19