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

Flask Jinja2如何通过变量名动态访问对象的属性值

Jinja2模板动态按变量名获取对象属性解决方案

你原来的写法中,row.column的点语法会将column识别为固定的属性名,而非你定义的column变量,所以无法实现动态取值,解决方案如下:

  • 最通用的方案:使用Jinja2内置的attr过滤器,直接将{{ row.column }}替换为{{ row|attr(column) }}即可,该方案支持ORM模型实例、普通类实例等多种对象类型。
  • 特殊场景适配:如果你的row是字典类型而非类实例对象,也可以直接用下标取值:{{ row[column] }}。
  • 容错优化:如果存在部分行缺少对应属性的场景,可以搭配default过滤器避免模板渲染报错:{{ row|attr(column)|default('-', boolean=True) }}

修改后的完整代码如下:

{% for row in rows.items %}
  <tr>
    {% for column in model_settings['table_columns'] %}
      <td>
        <p>{{ row|attr(column) }}</p>
      </td>
    {% endfor %}
  </tr>
{% endfor %}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:45:06