[templates] Django Template Language

이상해씨·2023년 7월 25일
0

장고 (Django)

목록 보기
22/38
post-custom-banner

Django 템플릿 언어(DTL : Django Template Language)

  • 장고 템플릿에서 사용하는 특별한 문법
  • 크게 아래와 같이 나뉨.
    1. 템플릿 변수
    2. 템플릿 태크
    3. 템플릿 필터
    4. 코멘트

1. 템플릿 변수

1-1) {{변수}}로 지정.

My first name is {{ first_name }}. My last name is {{ last_name }}.

1-2) 점 표기법

{{my_dict.key}}
{{my_list.0}}

{% for k, v in defaultdict.items %}
    Do something with k and v here...
{% endfor %}

2. 템플릿 태그

  • 텍스트, 반복문, 논리문 수행
  • 외부정보를 로드

2-1) {%태그%}

{% csrf_token %}
{% cycle 'odd' 'even' %} #인수 허용

2-2) 반복문

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

2-3) 조건문

  • 시작, 종료 태그 필요 {% if %}{% endif %}
{% if user.is_authenticated %}Hello, {{ user.username }}.{% endif %}
  • if, elif, 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 %}
{% if athlete_list|length > 1 %}
   Team: {% for athlete in athlete_list %} ... {% endfor %}
{% else %}
   Athlete: {{ athlete_list.0.name }}
{% endif %}

3. 템플릿 필터

  • 표시할 인수값 변환

{{data|filter}}

  • data를 filter 조건에 따라 추출

default

  • 기본값 지정
{{ value|default:"nothing" }}

length

  • 길이 반환
{{ value|length }}

filesizeformat

  • 파일크기 반환
{{ value|filesizeformat }}
  • 일부 필터는 인수 사용
{{ my_date|date:"Y-m-d" }}

4. 코멘트

  • 코멘트 넣는 방법은 2가지
  • {# 내용 #} / {%comment%} 내용 {%endcomment%}

4-1) {# 내용 #}

  • 한줄 주석
{# 1 라인 주석 #}

4-2) {%comment%} 내용 {%endcomment%}

  • 복수줄 주석
{% comment %}  
  <div>
      <p>
          주석처리할 블럭
      </p>
      <span></span>
  </div>
{% endcomment %}

참고

profile
공부에는 끝이 없다
post-custom-banner

0개의 댓글