• 회원가입
  • 로그인
  • 구글아이디로 로그인

[functions] Jinja - cycler() 함수 ★ - 교대순환 반환 (=cycler함수 = 사이클러함수) ※ cycler.current 속성 / cycler.next() 함수 / cycler.reset() 함수 ※ 얼룩말, 지불러

목차
  1. cycler() 예제 - odd/even 클래스 교대 순환 출력
  2. cycler() 정의
  3. cycler() 구문
  4. cycler() 예제 - current, next(), reset()

 

cycler() 예제 - odd/even 클래스 교대 순환 출력

 

{% set folders = ['A', 'B', 'C'] %}

{% set files = ['a.txt', 'b.txt', 'c.txt'] %}


{% set row_class = cycler("odd", "even") %}

<ul class="browser">

{% for folder in folders %}

  <li class="folder {{ row_class.next() }}">{{ folder }}

{% endfor %}

{% for file in files %}

  <li class="file {{ row_class.next() }}">{{ file }}

{% endfor %}

</ul>

 

결과값:

<ul class="browser">

  <li class="folder odd">A</li>
  <li class="folder even">B</li>
  <li class="folder odd">C</li>
  <li class="file even">a.txt</li>
  <li class="file odd">b.txt</li>
  <li class="file even">c.txt</li>
</ul>

 

cycler() 정의

 

지정 매개변수들을 교대 순환하면서 반환하는 전역함수.

 


 

1.

  • 한 번에 하나씩 값을 제공하여 값을 순환한 다음 끝에 도달하면 다시 시작.
  • loop.cycle과 유사하지만 루프 외부 또는 여러 루프에 걸쳐 사용 가능. (예) List에 있는 폴더와 파일 목록을 렌더링하고 "odd" 클래스와 "even" 클래스를 번갈아 제공.

 

2.  cycler() 함수 반환값을 cycler 변수에 할당 시 이용 가능한 값들

  • cycler.current 속성 = 현재 아이템 반환. 다음에 next()가 호출될 때 반환될 아이템과 동일.
  • cycler.next() 메서드 - 현재 아이템 반환 후, current 포인터를 다음 아이템으로 이동.
  • cycler.reset() 메서드 - current 포인터를 첫 번째 아이템으로 재설정. (아이템 반환 X)

 

3.

Jinja2 2.1 +

 

4. 공식 매뉴얼

https://jinja.palletsprojects.com/en/3.1.x/templates/#jinja-globals.cycler

 

 

cycler() 구문

 

class jinja-globals.cycler(\*items)

 


[매개변수]

 

\*items

교대 순환할 값을 쉼표(,)로 구분해 나열. (예) "odd", "even"

 


[반환값]

 

반복이 끝날 때까지 지정 매개변수 값을 교대로 반환.

 

 

cycler() 예제 - current, next(), reset()

 

{% set nums = cycler(1,2,3) %}


{{ nums.current }} {# 1 #}

{{ nums.next() }} {# 1 #}

{{ nums.current }} {# 2 #}

{{ nums.next() }} {# 2 #}

{{ nums.current }} {# 3 #}

{{ nums.reset() }} {# None #}

{{ nums.current }} {# 1 #}

 



분류 제목
tests Jinja - sameas() 테스트 - 두 객체의 메모리 주소 동일성 체크 (= sameas테스트 = 세임…
tests Jinja - sequence() 테스트 - 시퀀스인지 여부 체크 (= sequence테스트 = 시퀀스테스트…
tests Jinja - string() 테스트 - 문자열인지 체크 (= string테스트 = 스트링테스트)
tests Jinja - test() 테스트 - 테스트 존재 여부 체크 (= test테스트 = 테스트테스트)
tests Jinja - true() 테스트 - 참인지 체크 (= true테스트 = 트루테스트)
tests Jinja - undefined() 테스트 - 변수가 정의 안 되었는지 체크 (= undefined테스트 =…
tests Jinja - upper() 테스트 - 대문자인지 체크 (= upper테스트 = 어퍼테스트)
functions Jinja - range() 함수 ★ - 지정 범위 안 지정 간격의 정수 리스트 반환 (= range함수 =…
functions Jinja - lipsum() 함수 - 로렘입섬(= 의미없는 채우기용 문자열) (=lipsum함수 = 립섬함…
functions Jinja - dict() 함수 ★ - 딕트 리터럴 반환 (= 딕셔너리 반환 = dict함수 = 딕트함수)
functions Jinja - cycler() 함수 ★ - 교대순환 반환 (=cycler함수 = 사이클러함수) ※ cycle…
functions Jinja - joiner() 함수 ★ - 결합구분자 지정 (= 결합문자 지정 = joiner함수 = 조이너…
functions Jinja - namespace() 함수 - 속성 할당 가능한 변수 생성 (= namespace함수 = 네임…
structures Jinja - for 반복문 (= for반복문 = 포반복문/포문)
structures Jinja - if 조건문 (= if조건문 = 이프조건문/이프문)
structures Jinja - macro (매크로)
structures Jinja - call (콜블럭) ※ caller함수 = 콜러함수
structures Jinja - filter (필터섹션)
structures Jinja - Assignments (할당) ※ set태그 = 셋태그 ※ namespace (네임스페이스) …
structures Jinja - Block Assignments (블럭 할당)
8/9
목록
찾아주셔서 감사합니다. Since 2012