如何在 Jinja2 的变量中嵌入变量?

Posted

技术标签:

【中文标题】如何在 Jinja2 的变量中嵌入变量?【英文标题】:How do you embed variable in a variable in Jinja2? 【发布时间】:2015-10-02 09:53:32 【问题描述】:

我将一个名为“key”的值传递给我的 jinja2 模板。 “Key”是一个类似于“user_id”或“birthdate”的字符串。 “key”也是一个字典键。您可以像 jinja2 中的 key 一样访问它。但是,我想访问字典中“键”的值。 “item”是一个字典数组。我想做类似 item.key 的事情,但这不是正确的语法。我该怎么做?

【问题讨论】:

应该是 var_name_you_pass.key_which_you_want 这会给我字符串文字 【参考方案1】:

假设 item 是一个列表,您应该访问您想要的列表中的偏移量(例如,如果您想要 x 的偏移量,请使用 item[x]),这将是一个字典。此时您可以使用字典 .get() 语法:

item[x].get(key)

【讨论】:

我认为 jinja2 中不存在这种语法。 哪种语法?我认为列表偏移量可以,但您可能必须使用双花括号,例如:item[x].get(key)。列表访问可能有问题,但.get肯定存在。 这里是使用 Jinja2==2.7.2 从 python 2.7.9 复制和粘贴: >>> jinja2.Template("x[1].get('foo')" ).render(x=['foo': 'baz', 'foo': 'bar']) u'bar'

以上是关于如何在 Jinja2 的变量中嵌入变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Javascript 变量与 Jinja2 变量进行比较

如何在 jinja2 中使用 django 中的动态变量(variable.variable.variable)

如何检查 jinja2/django 模板中任何变量的大小写?

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

如何对从 webapp2 请求处理程序传递给 jinja2 模板的模板变量进行单元测试

在我的 jinja2 模板中使用 url 作为变量?