在Jinja2中导入/包含指定的变量

Bri*_*unt 15 import include jinja2

在Jinja2中,如何{% set X=Y %}在合并的文件中访问分配的变量(即)include

鉴于两个Jinja2文件,我希望以下工作:

A.jinja:

Stuff
{% include 'B.jinja' -%}
B has {{ N }} references
Run Code Online (Sandbox Code Playgroud)

B.jinja:

{% set N = 12 %}
Run Code Online (Sandbox Code Playgroud)

我希望A.jinja,当用Jinja2编译时,会产生以下输出:

Stuff 
B has 12 references
Run Code Online (Sandbox Code Playgroud)

但是,它产生:

Stuff
B has  references
Run Code Online (Sandbox Code Playgroud)

对于如何N在包含设置文件的文件中访问Jinja2变量(如上所述),我将非常感激N.

谢谢你的阅读.

布赖恩

Nik*_*iah 23

虽然你应该能够做到这两点,但是include和之间存在差异import.

  • include 'B.jinja 只需渲染模板并忽略其中的任何变量赋值或宏.
  • import 'B.jinja' as B,导入B就好像它是一个模块,所以你必须输出B.N.
  • from 'B.jinja' import NN直接导入变量.

将导入行更改为最后一个选项,看看是否修复了这些问题.如果您需要更多帮助,请查看文档.