반응형
진자에서 문자열을 목록으로 분할 하시겠습니까?
';'로 구분 된 문자열 인 jinja2 템플릿에 몇 가지 변수가 있습니다.
코드에서 이러한 문자열을 별도로 사용해야합니다. 즉, 변수는 variable1 = "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] }}
다음과 함께 작동합니다.
{% set list1 = variable1.split(';') %}
The grass is {{ list1[0] }} and the boat is {{ list1[1] }}
최대 10 개의 문자열이있는 경우 모든 값을 반복하려면 목록을 사용해야합니다.
{% set list1 = variable1.split(';') %}
{% for list in list1 %}
<p>{{ list }}</p>
{% endfor %}
jinja에서 임의의 Python 코드를 실행할 수 없습니다. 그 점에서 JSP처럼 작동하지 않습니다 (비슷하게 보입니다). jinja의 모든 것은 사용자 정의 구문입니다.
목적에 따라 맞춤 필터 를 정의하는 것이 가장 합리적 이므로 예를 들어 다음을 수행 할 수 있습니다.
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
반응형
'development' 카테고리의 다른 글
Git diff HEAD 대 --staged (0) | 2021.01.06 |
---|---|
concat과 uglify 및 minify의 차이점은 무엇입니까? (0) | 2021.01.06 |
angular2에서 httpinterceptor에 해당하는 것은 무엇입니까? (0) | 2021.01.06 |
2 차원 배열을 기반으로 WPF 그리드를 채우는 방법 (0) | 2021.01.06 |
C #에서 함수를 매개 변수로 전달하는 방법은 무엇입니까? (0) | 2021.01.06 |