开发者

Import / include assigned variables in Jinja2

开发者 https://www.devze.com 2023-01-03 05:35 出处:网络
In Jinja2, how can one access assigned variables (i.e. {% set X=Y %}) within files incorporated with include?

In Jinja2, how can one access assigned variables (i.e. {% set X=Y %}) within files incorporated with include?

I'd expect the following to work given two Jinja2 files:

A.jinja:

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

B.jinja:

{% set N = 12 %}

I'd expect that A.jinja, when compiled with Jinja2, would p开发者_运维百科roduce the following output:

Stuff 
B has 12 references

However, it produces:

Stuff
B has  references

I'd be much obliged for any input as to how to access the Jinja2 variables, such as N above, in the file that includes the file where N is set.

Thank you for reading.

Brian


There's a difference between include and import, although you should be able to do both.

  • include 'B.jinja simply renders the template and ignores any variable assignments or macros within it.
  • import 'B.jinja' as B, imports B as if it were a module, so you have to output B.N.
  • from 'B.jinja' import N imports variable N directly.

Change your import line to the last option and see if that fixes things. If you need more help, look at the documentation.

0

精彩评论

暂无评论...
验证码 换一张
取 消