You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jinja2循环中如何在HTML标签属性中拼接数据?

解决Jinja2中拼接数组属性到HTML属性的问题

嘿,作为Jinja2新手遇到这种模板语法问题太正常啦~你之前的写法主要是把模板循环逻辑和表达式语法混在一起了,其实Jinja2有内置的过滤器可以轻松搞定这个需求,不用手动写循环判断!

推荐的简洁写法

直接用map和join两个过滤器组合就能实现:

<div starts="{{ result | map(attribute='start') | join('|') }}"></div>

解释一下这两个过滤器的作用:

  • map(attribute='start'):遍历result数组里的每个对象,提取出它们的start属性,生成一个新的序列[0, 5]
  • join('|'):把这个序列里的元素用|符号连接起来,最终得到字符串"0|5"

如果你想用循环实现(不推荐,仅作参考)

如果一定要手动写循环拼接,需要先定义一个临时变量来存储拼接的内容,Jinja2里修改列表需要用append配合set:

{% set starts_str_parts = [] %}
{% for res in result %}
    {% if starts_str_parts %}
        {% set _ = starts_str_parts.append('|') %}
    {% endif %}
    {% set _ = starts_str_parts.append(res.start | string) %}
{% endfor %}
<div starts="{{ starts_str_parts | join }}"></div>

这里用starts_str_parts列表来收集拼接的片段,每次循环判断如果不是第一个元素就先加|,再把start转成字符串加进去,最后用join把列表拼成完整字符串。

内容的提问来源于stack exchange,提问作者bitwikinger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:00:11