진자에서 문자열을 목록으로 분할?
jinja2 템플릿에는 ';'로 구분된 문자열인 변수가 있습니다.
코드에서 이 문자열들을 따로 사용해야 합니다. 즉 변수는 변수1 = "green; blue" 입니다.
{% list1 = {{ variable1 }}.split(';') %}
The grass is {{ list1[0] }} and the boat is {{ list1[1] }}
템플릿을 렌더링하기 전에 분할할 수 있지만 문자열 안에 최대 10개의 문자열이 있는 경우가 있기 때문에 지저분합니다.
전에 JSP를 받은 적이 있어요
<% String[] list1 = val.get("variable1").split(";");%>
The grass is <%= list1[0] %> and the boat is <%= list1[1] %>
편집:
다음과 같이 작동합니다.
{% set list1 = variable1.split(';') %}
The grass is {{ list1[0] }} and the boat is {{ list1[1] }}
5년 만에 제 자신의 질문으로 돌아와서 많은 사람들이 이것이 유용하다고 생각하는 것을 본 후, 약간의 업데이트.
문자열 변수는 다음과 같이 나눌 수 있습니다.list
분할 함수를 사용하여 (유사한 값을 포함할 수 있음)set
가 할당에 사용됩니다).공식 문서에서는 이 기능을 찾지 못했지만 일반 파이썬과 유사하게 작동합니다.인덱스를 통해 항목을 호출하거나 루프에 사용하거나 데이브가 제안한 값을 알고 있으면 튜플과 같은 변수를 설정할 수 있습니다.
{% set list1 = variable1.split(';') %}
The grass is {{ list1[0] }} and the boat is {{ list1[1] }}
아니면
{% set list1 = variable1.split(';') %}
{% for item in list1 %}
<p>{{ item }}<p/>
{% endfor %}
아니면
{% set item1, item2 = variable1.split(';') %}
The grass is {{ item1 }} and the boat is {{ item2 }}
문자열이 최대 10개인 경우 모든 값을 반복하기 위해 목록을 사용해야 합니다.
{% set list1 = variable1.split(';') %}
{% for list in list1 %}
<p>{{ list }}</p>
{% endfor %}
jinja에서 임의의 파이썬 코드를 실행할 수는 없습니다. 그런 점에서 JSP처럼 작동하지 않습니다(그냥 비슷해 보입니다).진자에 있는 것들은 모두 맞춤 구문입니다.
사용자 정의 필터를 정의하는 것이 가장 합리적이므로 예를 들어 다음을 수행할 수 있습니다.
The grass is {{ variable1 | splitpart(0, ',') }} and the boat is {{ splitpart(1, ',') }}
Or just:
The grass is {{ variable1 | splitpart(0) }} and the boat is {{ splitpart(1) }}
그러면 필터 기능은 다음과 같이 나타납니다.
def splitpart (value, index, char = ','):
return value.split(char)[index]
컨트롤러에서 분할하여 분할된 목록을 보기에 전달하는 것이 훨씬 더 합리적인 대안이 될 수 있습니다.
언급URL : https://stackoverflow.com/questions/30515456/split-string-into-list-in-jinja
'programing' 카테고리의 다른 글
구문 오류 또는 액세스 위반: 1059 식별자 이름이 너무 깁니다. (0) | 2023.10.03 |
---|---|
(dom4j를 대체할) 어떤 Java XML 라이브러리를 추천하십니까? (0) | 2023.10.03 |
Mailchimp 오류: 잘못된 요청 - 캠페인을 보낼 준비가 되지 않았습니다. (0) | 2023.10.03 |
JoomlamySQL DB를 Maria DB로 이동하는 방법 (0) | 2023.10.03 |
자바스크립트는 해시값으로 페이지를 다시 로드합니다. (0) | 2023.10.03 |