python jinja 템플릿에서 loop.counter를 출력하는 방법
현재의 루프 반복을 템플릿에 출력할 수 있도록 하고 싶다.
의사들에 의하면,loop.counter사용하려는 변수:
<ul>
{% for user in userlist %}
<li>
{{ user }} {{loop.counter}}
</li>
{% if loop.counter == 1 %}
This is the First user
{% endif %}
{% endfor %}
</ul>
하지만 내 템플릿으로 출력되고 있다.올바른 구문은 무엇입니까?
루프 내부의 카운터 변수를 호출합니다.loop.indexJinja2에서.
>>> from jinja2 import Template
>>> s = "{% for element in elements %}{{loop.index}} {% endfor %}"
>>> Template(s).render(elements=["a", "b", "c", "d"])
1 2 3 4
에 더하여loop.index, 또한
loop.index0(인덱스 시작:0)loop.revindex(인덱스, 종료시)1)loop.revindex0(인덱스, 종료시)0)- 자세한 것은, http://jinja.pocoo.org/docs/templates/ 를 참조해 주세요.
의 내부for-루프 블록은 다음과 같은 특정 변수에 액세스할 수 있습니다.loop.index(단, 아닙니다)loop.counter) 공식 문서:
| 변수 | 묘사 |
|---|---|
loop.index |
루프의 현재 반복입니다. (인덱스된 1 。 |
loop.index0 |
루프의 현재 반복입니다.(0 인덱스) |
loop.revindex |
루프 끝에서 반복 횟수(1개의 색인화) |
loop.revindex0 |
루프 끝에서 반복 횟수(0 인덱스) |
loop.first |
첫 번째 반복일 경우 True입니다. |
loop.last |
마지막 반복일 경우 True입니다. |
loop.length |
시퀀스의 항목 수. |
loop.cycle |
시퀀스 목록 사이를 순환하는 도우미 함수입니다. |
loop.depth |
현재 렌더링이 재귀 루프에서 얼마나 깊은지 나타냅니다.레벨 1부터 시작 |
loop.depth0 |
현재 렌더링이 재귀 루프에서 얼마나 깊은지 나타냅니다.레벨 0부터 시작 |
loop.previtem |
루프의 이전 반복 항목입니다.첫 번째 반복 중에 정의되지 않았습니다. |
loop.nextitem |
루프의 다음 반복 항목입니다.마지막 반복 중에 정의되지 않았습니다. |
loop.changed(*val) |
이전에 다른 값으로 호출된 경우(또는 전혀 호출되지 않은 경우) True입니다. |
장고를 사용하는 경우forloop.counter대신loop.counter:
<ul>
{% for user in userlist %}
<li>
{{ user }} {{forloop.counter}}
</li>
{% if forloop.counter == 1 %}
This is the First user
{% endif %}
{% endfor %}
</ul>
실제 예:
{% for image in item['images'] %}
{% set image_id = item_id ~ '-preview-' ~ loop.index0 %}
<div id="{{ image_id }}" class="overlay">
<a class="cancel" href="#{{ item_id }}"></a>
<div class="popup">
{% set src = image if image.startswith('http') else '/static/images/store/' ~ item_id ~ '/' ~ image %}
<a href="{{ src }}"><img class="modal-img" src="{{ src }}"/></a>
</div>
</div>
{% endfor %}
Python 코드:
env = Environment(loader=FileSystemLoader("templates"))
env.globals["enumerate"] = enumerate
템플릿:
{% for idx, val in enumerate(list) %}
{{ idx }}. {{val}}
{% endfor %}
언급URL : https://stackoverflow.com/questions/12145434/how-to-output-loop-counter-in-python-jinja-template
'programing' 카테고리의 다른 글
| 다음 클래스를 인스턴스화할 수 없습니다. - Android.support.v7.199.툴바 (0) | 2023.01.24 |
|---|---|
| 스위트에서 하나의 테스트만 실행하려면 어떻게 해야 합니까? (0) | 2023.01.24 |
| MySQL 데이터베이스에 전화번호를 저장하는 방법 (0) | 2023.01.24 |
| 이클립스 자동 완성(백분율 기호, Juno 단위) (0) | 2023.01.24 |
| Mariadb용 커넥터 C 설치 (0) | 2023.01.24 |