String Jinja中的字符串连接

String Jinja中的字符串连接,string,jinja2,String,Jinja2,我只想在现有列表中循环,并从中生成一个逗号分隔的字符串。 类似这样的内容:my_string='stuff,stuff,stuff,stuff' 我已经知道了循环。最后,我只需要知道如何使下面代码中的第三行正常工作 {% set my_string = '' %} {% for stuff in stuffs %} {% set my_string = my_string + stuff + ', '%} {% endfor%} 如果stuffs是一个字符串列表,那么这样就可以了: {{ st

我只想在现有列表中循环,并从中生成一个逗号分隔的字符串。
类似这样的内容:
my_string='stuff,stuff,stuff,stuff'

我已经知道了
循环。最后,我只需要知道如何使下面代码中的第三行正常工作

{% set my_string = '' %}
{% for stuff in stuffs %}
{% set my_string = my_string + stuff + ', '%}
{% endfor%}

如果
stuffs
是一个字符串列表,那么这样就可以了:

{{ stuffs|join(", ") }}
加入
过滤器文档,加入常规文档中的过滤器

p、 美国

更方便读者阅读的方式
{{my~,'~string}}

我的错,在试图简化它时,我做得太过分了,实际上
东西
是各种信息的记录,我只想要其中的id

stuffs = [[123, first, last], [456, first, last]]
我想要我的成为

my_sting = '123, 456'
我的原始代码应该是这样的:

{% set my_string = '' %}
{% for stuff in stuffs %}
{% set my_string = my_string + stuff.id + ', '%}
{% endfor%}
 {% set my_string = [] %}
 {% for stuff in stuffs %}
 {% do my_string.append(stuff.id) %}
 {% endfor%}
 {%  my_string|join(', ') %}
想一想,
stuff
可能是一本字典,但你明白了要点

是的,我找到了
join
过滤器,打算这样处理它:

{% set my_string = '' %}
{% for stuff in stuffs %}
{% set my_string = my_string + stuff.id + ', '%}
{% endfor%}
 {% set my_string = [] %}
 {% for stuff in stuffs %}
 {% do my_string.append(stuff.id) %}
 {% endfor%}
 {%  my_string|join(', ') %}

但是,如果不导入扩展就无法进行追加,阅读该文档让我头疼。它没有明确说明从何处导入,甚至没有明确说明将导入语句放在何处,因此我认为找到一种concat方法将是两个缺点中的较小的一个。

只是另一个黑客可以这样做

我有一个需要连接的字符串数组。所以我将该数组添加到字典中,然后在for循环中使用它

{% set dict1 = {'e':''} %}
{% for i in list1 %}
{% if dict1.update({'e':dict1.e+":"+i+"/"+i}) %} {% endif %}
{% endfor %}
{% set layer_string = dict1['e'] %}

如果不能仅使用筛选器联接,而需要对数组的条目执行某些操作:

{% for entry in array %}
User {{ entry.attribute1 }} has id {{ entry.attribute2 }}
{% if not loop.last %}, {% endif %}
{% endfor %}

如果知道所有值都是字符串,则可以使用
+
。Jinja还提供了
~
操作符,该操作符将确保首先将所有值转换为字符串

{% set my_string = my_string ~ stuff ~ ', '%}

记住使用~而不是+谢谢伙计你救了我的命alotOK我发布的原始代码很有用,我把它放在{{}我的实际代码中,而不是{%}我一直在寻找最好的方法和我可以做的事情,那是在一天结束到晚上,所以{}在我的挫败中溜走了。感谢您的回复,因为2.6版您可以在连接筛选器中选择一个属性。因此,您可以执行{{stuffs.join(',',attribute='id')}}查看这是非常棒的,当代码是flask app template.thx的一部分时,可以避免额外的
None
。它也在文档中,这应该是可接受的!