Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

Nonamed Develog

[TIL][240809] DTL(Django Template Language) 문법 본문

WHAT I LEARN/TIL

[TIL][240809] DTL(Django Template Language) 문법

노네임드개발자 2024. 8. 9. 22:05
어떤 문제가 있었나?

오늘 Django의 Template System을 이해하고 활용하는 내용을 배웠다. 그중 HTML 파일 내에서 동적인 데이터를 표현하기 위해 DTL(Django Template Lanuage)을 사용하는 방법이 어려웠다. 처음 접하는 DTL 문법이 익숙하지 않아 변수를 출력하거나 반복문을 사용할 때 올바르게 작성하지 못해 예상대로 동작하지 않는 문제가 있었다.


무엇을 시도했나?

먼저 DTL 문법의 기본적인 규칙들을 학습하기 위해 강의 노트와 튜터님의 말씀대로 Django 공식 문서를 참고했다. 이를 통해 변수를 출력하는 방법과 반복문을 작성하는 기본적인 구조를 익히고, 간단한 예제를 따라 해봤다. 변수를 Template에 전달하고, 그 변수를 올바르게 출력하는 것을 위주로 연습해 봤다.


어떻게 해결됐는가?

Django 공식 문서와 강의 자료를 참고하면서 실습 예제를 따라 해보고, 잘못된 부분을 하나씩 수정해 봤다. 특히 변수 출력은 {{ }}, 태그에서 반복문은 {% for %} {% endfor %}와 같은 기본적인 문법을 이해하기 위해 노력했다. 여러 데이터를 순회하면서 출력하는 반복문을 연습하면서 점차 DTL 문법이 익숙해지는 느낌이었다.


새로 알게 된 점은 무엇인가?

DTL은 Django의 강력한 Template engine으로, 서버 측 데이터를 쉽게 HTML에 반영할 수 있다는 점을 알게 되었다. 특히 DTL은 파이썬 문법과 유사하지만, template 전용의 문법을 사용하여한다는 점에서 차이점이 존재한다는 걸 알게 되었다.

  • 변수 variable
    - view의 context로 넘긴 데이터에 접근할 수 있고 . 을 사용하여 변수의 속성값에 접근할 수 있다.
    - render()의 세 번째 인자인 context에 딕셔너리 형태로 넘겨진 데이터 중 key 값이 template에서 사용 가능한 변수가 된다.
# 변수의 기본 형태
{{ variable }}

 

  • 필터 filter
    - 변수에 어떠한 작업을 추가적으로 더해 수정하고 싶을 때 사용한다.
    - 약 60개의 built-in template filter가 제공되며 일부 필터는 인자를 받기도 한다.
# 필터의 기본 형태
{{ variable|filter }}
# 필터 사용 예시
{{ first_name|upper }}  # FIRST_NAME

 

  • 태그 Tags
    - 반복문 또는 논리, 조건문을 수행하여 제어 흐름을 만들거나 특수한 기능을 수행한다.
    - 일부는 시작 태그와 종료 태그가 있다.
    - 파이썬과 유사한 형태지만 DTL 문법을 다르다는 것을 기억해야 한다.
# 태그의 기본 형태
{% tag %}

# 조건문
{% if ~ %}
{% endif %}

# 반복문
{% for ~ in %}
{% endfor %}

 

  • 주석 Comments
    - 태그에서 비롯된 문법으로 주석을 작성할 때 사용한다.
{# 한 줄 주석 #}

{% comment %}
 여러줄
 주석
{% endcomment %}

무엇을 느꼈고 내일은 무엇을 할까?

생각보다 강의 진도를 빠르게 빼기 못해서 주말에 쉬면서 기초 강의를 들어야겠다.