반응형
jinja python 템플릿에서 쉼표로 구분 된 목록을 출력하는 방법은 무엇입니까?
users
say 의 목록이 있으면 ["Sam", "Bob", "Joe"]
jinja 템플릿 파일에서 출력 할 수있는 작업을하고 싶습니다.
{% for user in userlist %}
<a href="/profile/{{ user }}/">{{ user }}</a>
{% if !loop.last %}
,
{% endif %}
{% endfor %}
출력 템플릿을 다음과 같이 만들고 싶습니다.
Sam, Bob, Joe
루프의 마지막 반복에 있는지 확인하기 위해 위의 코드를 시도했지만 그렇지 않은 경우 쉼표를 삽입하지 않지만 작동하지 않습니다. 어떻게해야합니까?
당신은 당신의 if
수표를 원합니다 :
{% if not loop.last %}
,
{% endif %}
If Expression 을 사용하여 코드를 줄일 수도 있습니다 .
{{ "," if not loop.last }}
내장 된 "join"필터 ( http://jinja.pocoo.org/docs/templates/#join)를 사용할 수도 있습니다 .
{{ users|join(', ') }}
그리고를 사용 joiner
에서 http://jinja.pocoo.org/docs/dev/templates/#joiner
{% set comma = joiner(",") %}
{% for user in userlist %}
{{ comma() }}<a href="/profile/{{ user }}/">{{ user }}</a>
{% endfor %}
이 정확한 목적을 위해 만들어졌습니다. 일반적으로 forloop.last의 결합 또는 검사는 단일 목록으로 충분하지만 여러 그룹의 경우 유용합니다.
사용하는 이유에 대한 더 복잡한 예입니다.
{% set pipe = joiner("|") %}
{% if categories %} {{ pipe() }}
Categories: {{ categories|join(", ") }}
{% endif %}
{% if author %} {{ pipe() }}
Author: {{ author() }}
{% endif %}
{% if can_edit %} {{ pipe() }}
<a href="?action=edit">Edit</a>
{% endif %}
반응형
'programing tip' 카테고리의 다른 글
편집기에서 줄 바꿈 및 캐리지 리턴 확인 (0) | 2020.06.09 |
---|---|
RegExp.exec를 사용하여 문자열에서 모든 일치 항목을 추출하는 RegEx (0) | 2020.06.09 |
jQuery 유효성 검사 플러그인이있는 부트 스트랩 (0) | 2020.06.09 |
Android에서 캘린더 일정을 추가하는 방법은 무엇입니까? (0) | 2020.06.09 |
ASP.NET의 모든 클래스에서 세션 변수에 액세스하는 방법은 무엇입니까? (0) | 2020.06.09 |