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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Jinja2中导入/包含指定的变量相关的知识,希望对你有一定的参考价值。

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

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

A.jinja

Stuff
{% include 'B.jinja' -%}
B has {{ N }} references

B.jinja

{% set N = 12 %}

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

Stuff 
B has 12 references

但是,它产生:

Stuff
B has  references

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

谢谢你的阅读。

布赖恩

答案

includeimport之间存在差异,尽管你应该能够做到这两点。

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

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

以上是关于在Jinja2中导入/包含指定的变量的主要内容,如果未能解决你的问题,请参考以下文章

如何在两个单独的脚本中导入共享变量?

在python中导入带参数的模块

在eclipse中导入JIRA源代码

我想从另一个 python 文件中导入一个变量(Django)

模块导入---如何在一个文件中导入其它模块,来调用它的变量函数等,以节省代码量

java如何在指定目录中导入类