2
圖像一個基本模板是這樣的:Jinja2的使用變量從父模板
{% set styles = [] %}
<!DOCTYPE html>
<html>
<head>
{% for style in styles %}
<link href="{{style}}" ref="stylesheet" type="text/css; charset=utf8">
{% endfor %}
</head>
<body>
{% block body %}
{% endblock %}
</body>
</html>
我要附加到從兒童模板styles
變量,但它會產生「風格是不確定的」。
{% extends "base.html" %}
{% do styles.append("index.css") %}
一個解決方案,這將是呈現從Python代碼模板時定義styles
爲空列表。但我不想將styles=[]
添加到我呈現的每個模板中。
不幸的是,導入也不起作用。它不會再告訴你「樣式未定義」,但它不會在父模板的頭部顯示。
{% extends "base.html" %}
{% from "base.html" import styles %}
{% do styles.append("index.css") %}
這怎麼解決?
PS:如果您想測試它,您需要將jinja2.ext.do
添加到擴展名中。