如何从 Jinja 的列表中准确获取一个元素?

Posted

技术标签:

【中文标题】如何从 Jinja 的列表中准确获取一个元素?【英文标题】:How to get exactly one element from list in Jinja? 【发布时间】:2018-12-23 09:12:19 【问题描述】:

所以我在views.py 中传递了一个带有目录的渲染作为参数。像这样的:

def foo(request):
return render(request, 'webapp/foo.html', 'key': ['one', 'two', 'three'])

现在我想在我的 HTML 文件中使用 Jinja 从目录值中获取一个元素,让我们先说。 我所知道的就是如何使用 for 循环获取所有元素:

% block content %
   % for val in key %
      <p>  val  </p>
   % endfor %
% endblock %

我的问题是有没有这样的东西?

% block content %
   <p>  key[0]  </p>
% endblock %

【问题讨论】:

【参考方案1】:

是的。在像documentation says 这样的Jinja 中,你可以。 Django 模板支持这种索引,尽管使用不同的语法可以实现。您可以使用索引表示法从元素中访问键,因此:

 key<b>[0]</b> 

但实际上,在 Django 模板中,您也可以执行索引查找,方法是:

 key<b>.0</b> 

【讨论】:

【参考方案2】:

你可以间接索引列表

可以使用 split 函数将字符串变量拆分为列表(它可以包含相似的值,set 用于赋值)。我在官方文档中没有找到这个函数,但它的工作原理类似于普通的 Python。这些项目可以通过索引调用,在循环中使用,或者像 Dave 建议的那样,如果你知道这些值,它可以像元组一样设置变量。

% set list1 = variable1.split(';') % 草是 list1[0] ,船是 list1[1] 或

% set list1 = variable1.split(';') %
% for item in list1 %
    <p> item <p/>
% endfor % 

% set item1, item2 = variable1.split(';') %
The grass is  item1  and the boat is  item2 

【讨论】:

以上是关于如何从 Jinja 的列表中准确获取一个元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jinja2 检查字典中的列表元素?

如何从 Erlang 中的对列表中获取元素

如何从javascript中的列表中获取音频元素的src

如何从列表“StandardListItem”中的 JSON 文件中的元素“名称”中获取所有值?

如何使用适配器为recyclerview从字符串数组列表中的元素获取字符串

使用 jquery 的 next() 函数获取列表中的下一个元素时,如何在到达列表末尾后获取第一个元素?