반응형
선택한 명명 된 인수를 Jinja2의 include 컨텍스트에 전달하는 방법은 무엇입니까?
Django 템플릿 엔진을 사용하면 다음과 같이 명명 된 인수를 사용하여 사용자 지정 컨텍스트를 설정하는 동안 다른 부분 템플릿을 포함 할 수 있습니다.
{% include "list.html" with articles=articles_list1 only %}
{% include "list.html" with articles=articles_list2 only %}
당신은 치죠 될 수로 articles_list1
및 articles_list2
두 개의 서로 다른 목록입니다,하지만 난 바로 그 재사용 할 수 list.html
사용하게 될 템플릿 articles
변수를.
Jinja2를 사용하여 동일한 결과를 얻으려고하는데 with
키워드가 지원되지 않기 때문에 권장되는 방법이 무엇인지 알 수 없습니다 .
2017+의 독자를 위해 Jinja는 기본적으로 성명서 를 2.9
포함합니다 with
. 연장이 필요하지 않습니다.
http://jinja.pocoo.org/docs/2.9/templates/#with-statement
Jinja의 이전 버전 (2.9 이전)에서는 확장 기능을 사용하여이 기능을 활성화해야했습니다. 이제 기본적으로 활성화되어 있습니다.
Jinja2에는 키워드 를 활성화 하는 확장 이 있습니다. with
Django와 동일한 구문을 제공하지 않으며 예상 한대로 작동하지 않을 수 있지만 다음과 같이 할 수 있습니다.
{% with articles=articles_list1 %}
{% include "list.html" %}
{% endwith %}
{% with articles=articles_list2 %}
{% include "list.html" %}
{% endwith %}
그러나 list.html
기본적으로 목록을 생성하는 방법으로 만 작동하는 경우 macro
대신 a로 변경하고 싶을 수 있습니다. 이렇게 하면 훨씬 더 많은 유연성을 얻을 수 있습니다.
{% macro build_list(articles) %}
<ul>
{% for art in articles %}
<li>{{art}}</li>
{% endfor %}
</ul>
{% endmacro %}
{# And you call it thusly #}
{{ build_list(articles_list1) }}
{{ build_list(articles_list2) }}
이렇게하면 Jinja2 Include 문에 여러 변수 를 전달할 수 있습니다 -( With 문 내에서 쉼표로 변수를 분할하여 ) :
{% with var_1=123, var_2="value 2", var_3=500 %}
{% include "your_template.html" %}
{% endwith %}
반응형
'development' 카테고리의 다른 글
Windows에서 Charles Web Proxy 및 최신 Android 에뮬레이터를 사용하여 SSL 인증서를 구성하는 방법은 무엇입니까? (0) | 2020.12.06 |
---|---|
Django 모델의 필드를 업데이트하기 위해 사전을 어떻게 사용합니까? (0) | 2020.12.06 |
Javascript에서 True-> 1 및 False-> 0을 변환 하시겠습니까? (0) | 2020.12.06 |
List와 IEnumerable의 실제 차이점 (0) | 2020.12.06 |
C #에서 이름으로 Windows Forms 컨트롤 가져 오기 (0) | 2020.12.06 |