Python/Django

[Python][Django] Template Tag < For >

S0PH1A 2019. 1. 7. 00:42
반응형
For


1.일반 For문


    {% for key in list %}
  • {{ key }}
  • {% endfor %}


2.For문 반전 ( Dictionary 불가능 )


    {% for key in list reversed %}
  • {{ key }}
  • {% endfor %}


3.이중 리스트 반복


    {% for key, val in matrix %}
  • Key : {{ key }}, Val : {{ val }}
  • {% endfor %}


4.딕셔너리 반복


    {% for key, val in dict.items %}
  • Key : {{ key }}, Val : {{ val }}
  • {% endfor %}


5. 리스트 비어 있는 경우 예외 처리


    {% for val in emptyList %}
  • {{ val }}
  • {% empty %}
  • Empty.
  • {% endfor %}

6. 루프가 입력된 횟수(인덱스) 표시

forloop.counter : 인덱스가 1부터 시작
forloop.counter0 : 인덱스가 0부터 시작

    {% for val in list %}
  • forloop.counter [ {{ forloop.counter }} ] : forloop.counter0 [ {{ forloop.counter0 }} ] : item [ {{ val }} ]
  • {% endfor %}


forloop.revcounter : 인덱스가 역순으로 표시되며, 1로 종료  

forloop.revcounter0 : 인덱스가 역순으로 표시되며, 0로 종료


    {% for val in list %}
  • forloop.revcounter [ {{ forloop.revcounter }} ] : forloop.revcounter0 [ {{ forloop.revcounter0 }} ] : item [ {{ val }} ]
  • {% endfor %}


forloop.first : 루프 처음 실행시 True로 설정

forloop.last : 루프 마지막 통과시 True로 설정


    {% for val in list %}
  • {% if forloop.first %} I'm First : {{ val }} {% elif forloop.last %} I'm Last : {{ val }} {% else %} {{ val }} {% endif %}
  • {% endfor %}


ex) forloop.last는 일반적으로 아래처럼 이용됨.



{% for val in list %} {{ val }}{% if not forloop.last %} , {% endif %} {% endfor %}


forloop.parentloop : 부모 루프의 forloop객체 참조


    {% for val in matrix %}
    • {% for i in val %}
    • forloop.parentloop : {{ forloop.parentloop }}
      Parent Index : {{ forloop.parentloop.counter }} / Child Index : {{ forloop.counter }}
    • {% endfor %}
  • {% endfor %}










반응형