在Jinja中设置变量


274

我想知道如何在Jinja中使用另一个变量设置变量。我会解释,我有一个子菜单,我想显示哪个链接处于活动状态。我尝试了这个:

{% set active_link = {{recordtype}} -%}

其中recordtype是为我的模板提供的变量。


18
人们从Google登陆到这里:您可能主要对标记set官方文档感兴趣,而不是由问询者在此处犯下的具体语法错误或如何解决它,这是在此处以及链接的重复地址上的最高答案。 。
Mark Amery

1
@MarkAmery Ty!特别是jinja.palletsprojects.com/en/2.11.x/templates/…这部分非常有用。
ruohola

Answers:


547

{{ }}告诉模板打印值,这在您尝试执行的表达式中将不起作用。而是使用{% set %}template标记,然后以与普通python代码相同的方式分配值。

{% set testing = 'it worked' %}
{% set another = testing %}
{{ another }}

结果:

it worked

2
如果我的变量是dict,现在{%set dict.key ='test'%}现在不起作用
Ib33X 2011年

一个删除的答案也包括此链接,作为该答案的补充信息:jinja.pocoo.org/docs/tricks/#highlighting-active-menu-items
Pascal,

这是很好的解释,很简单。喜欢它:)
Faris Rayhan

我们可以创建一个全局的jinja变量并在我们嵌入jinja变量的html文件中使用它吗?@Soviut
Sri Test


25

像这样设置

{% set active_link = recordtype -%}

7
为什么特别喜欢这样(结尾处的负号而不是开头的负号)?如果我没有记错的话,这将删除尾部的空格,但不会删除前导的空格。为了什么目的
Leonid

15
它在原始问题中\\ _(ツ)_ /?
Graham P Heath
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.