웹개발 및 최신 테크 소식을 전하는 블로그, 웹이즈프리

HOME > python

python의 jinja2에서 for문 index값 얻는 방법

Last Modified : 2021-02-20 / Created : 2017-08-15
16,538
View Count

Python jinja2(flask)를 사용할 때 표현식에서 for문을 사용하는 경우 index(인덱스)값을 가져오는 방법을 알아봅니다. 어떻게 하면 for문의 순서값인 index를 가져오는지 아래를 봐주세요.




# Python for문 표현식 예제보기

아래는 배열값을 가지는 items 변수를 가져와 반복문을 실행하는 예제입니다. 만약 items가 3개의 값을 가지는 경우 for문을 사용하여 루프를 실행해보겠습니다.
<ul>
    {% for item in items %}
   <li>
     {{ loop.index }} 번째 줄입니다
   </li>
    {% endfor %}
</ul>

위 코드를 보면 몇 번째 줄인지 나타내기 위해서 {{ loop.idex }}를 사용하였습니다. 출력결과는 아래와 같습니다.
1 번째 줄입니다
2 번째 줄입니다
3 번째 줄입니다

이처럼 loop객체의 프로퍼티 index는 값 1부터 n까지의 값을 가지고 있습니다. 이를 사용하여 순서, index를 보여주거나 if 문을 사용하여 해당 index에서만 특정한 코드를 실행하는 것도 가능합니다.

참고로 jina에서 for 루프를 구현하는 경우 index 이외에 아래와 같이 다양한 속성이 존재합니다.

  • loop.index // 1부터 시작하는 인덱스 값 반환
  • loop.revindex // 반대부터 시작하는 인덱스 값 반환
  • loop.index0 // 0부터 시작하는 인덱스 값 반환
  • loop.revindex0 // 반대부터 시작하는 인덱스 값으로 0을 기준으로 반환
  • loop.first // <Boolean> 첫 번째 루프에 해당하는지를 반환
  • loop.last // <Boolean> 첫 번째 루프에 해당하는지를 반환
  • loop.length // <Number> 전체 루프의 길이를 반환

그럼 아래에서는  jinja에서 for 루프를 사용한 간단한 예제를 몇 가지 알아봅니다.


! 1부터 5까지만 출력하는 예제보기

간단한 예제를 하나 더 알아봅니다. 매우 자주 사용되는 방법으로 만약 변수 items의 값이 매우 많을 때 단 5개만 출력하려면 어떻게 할까요? 아래는 오직 1부터 5까지 5개만 출력하는 방법입니다.


이 경우 if를 사용하여 index값이 5보다 같거나 작은 조건만 출력하면 되겠죠. 아래와 같이 사용합니다.
<ul>
  {% for item in items %}
  {% if loop.index <= 5 %}
  <li>
    {{ loop.index }} 번째 줄입니다
  </li>
  {% endif %}
  {% endfor %}
</ul>

출력할 경우 loop.index값이 5보다 같거나 작은 수인 경우만 실행되므로 1에서 5개까지만 출력하게 됩니다.


! 첫 번째 값만 다르게 출력하기

이번에는 위와 동일하게 '몇 번째 줄입니다'라고 출력하되 단, 첫 번째 줄인 경우에는 '첫 번째 줄입니다'로 바꿔서 출력하려고 합니다.
<ul>
  {% for item in items %}
  <li>
  {% if loop.index == 1 %}
    첫 번째 줄입니다
  {% else %}
    {{ loop.index }} 번째 줄입니다
  {% endif %}
  {% endfor %}
  </li>
</ul>

여기서 주의할 부분은 첫 번째 index 값은 0이 아닌 1부터 시작한다는 점입니다. 나머지는 위 예제와 거의 동일합니다. 만약 0부터 사용해야한다면 loop.index0을 사용하면 되겠죠.


여기까지 Python Jinja 템플릿에서 for문 사용시 인덱스(index)을 가져오거나 출력하는 방법에 대하여 알아보았습니다.

Previous

Python flask에서 robots.txt 설정하는 방법 알아보기

Previous

Python flask 여러개의 파일 동시 업로드 방법