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
添加到扩展名中。