我正在编写一个程序,该程序应在通过jinja2生成的html文件中包含相当长的文本块。由于宏结构复杂,我想将这些文本构造为jinja2变量,如下所示:
<!DOCTYPE HTML>
{% set standard_text = "This is the standard text." %}
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
{{standard_text}}
</body>
</html>
这很好,但是由于这些文本可能会很长,因此我希望将它们放在单独的文件中。所以我创建了一个名为text.html的文件:
{% set standard_text = "This is the standard text." %}
并将其放入名为template / standard_texts的库中。现在,我想将其导入html文件,并尝试了以下操作:
<!DOCTYPE HTML>
{% include 'templates/standard_texts/text.html' %}
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
{{standard_text}}
</body>
</html>
但是,当我运行它时,出现此错误:
jinja2.exceptions.UndefinedError: 'standard_text' is undefined
我还尝试了其他方法,例如
{% from 'templates/standard_texts/text.html import standard_text %}
或
{% extends'templates/standard_texts/text.html' %}
但这也不起作用。我已经阅读了Jinja2的“模板设计器文档”(http://jinja.pocoo.org/docs/2.10/templates/#),但也找不到任何东西。
这是怎么做的?
答案 0 :(得分:0)
事实证明,使用from ... import测试第二个选项时,我犯了一个非常愚蠢的错误。有一个无与伦比的单引号,并且固定了这个引号就可以了。经过更正后,文档如下所示:
<!DOCTYPE HTML>
{% from 'templates/standard_texts/text.html' import standard_text %}
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
{{standard_text}}
</body>
</html>