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

HOME > python

Python jinja 템플릿 for 루프 사용시 cycle 메서드 사용하기

Last Modified : 2021-02-20 / Created : 2021-02-20
2,764
View Count

Jinja에서 반복문을 사용해야 하는 경우 for문을 사용합니다. 이때 loop.index를 사용하여 순서값인 인덱스(index)를 얻는 방법이 많이 사용되지만 이 외에 cycle() 메서드가 존재합니다.

jinja 루프문에 loop.cycle()은 어떤 일을 할까요? 루프 안에서 반복하여 특정 텍스트를 출력해야한다면 바로 cycle()을 사용하는 방법이 가장 쉽고 편리한 방법입니다. 간단하게 아래와 같이 반복해서 텍스트를 출력해야한다고 생각해봅니다.
첫번째
두번째
세번째
첫번째
두번째
세번째
...

이와 같이 계속 반복해서 출력해야한다면 어떻게 해야할까요?



# Jinja for 루프문에서 cycle 메서드 사용하기


생각해보니 떠오르는 방법으로 바로 index를 3으로 나누어 가지는 나머지를 사용하면 쉽게 해결할 수 있겠죠. 더 나은 방법을 찾는 다면 이보다 더 간단한 방법이 바로 loop.cycle()를 사용하는 방법입니다.

아래와 같이 mySite 이름의 list 타입의 변수가 존재하는 경우 이를 사용하면 아래와 같이 코드를 작성할 수 있습니다.
{% for item in mySite %}
  {{ loop.cycle('첫번째', '두번째', '세번째') }}
  <br />
{% endfor%}

이와 같이 매우 간단하게 구현할 수 있었습니다. 나머지를 알 필요도 없고 if문을 사용할 필요도 없으므로 간단합니다.

추가로 loop문과 관련하여 index를 사용해야하는 경우 아래 링크를 참고하세요.

관련 링크 바로가기 >
https://webisfree.com/2017-08-15/python의-jinja2에서-for문-index값-얻는-방법


Previous

Python 소문자 대문자 변환하는 방법

Previous

[Python] flask 쿠키 사용하는 방법, cookie