如何从 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 的列表中准确获取一个元素?的主要内容,如果未能解决你的问题,请参考以下文章
如何从列表“StandardListItem”中的 JSON 文件中的元素“名称”中获取所有值?