如何在jinja模板中通过列键访问SQLalchemy对象

2 投票
1 回答
4920 浏览
提问于 2025-04-17 16:24

我有一个叫做 reference 的表格,里面有几个列,分别是 id, parent, number, href。当我想要访问这个表格中的某一行时,我会把查询对象传给 render_template 方法,像这样:

render_template('home.html',\
               ref = db.session.query(reference).filter(reference.parent == 1).all())

现在,每当我想访问返回的第一行时,我会使用

{{ ref[0].href }}

我想把访问的 0 改成比如说 number 列的值。我需要这样做是为了在模板中根据列的值来访问行,而不是按顺序来访问,也就是说:

{{ ref['column_value'].href }}

1 个回答

3

你可以把你的数据集合放进一个字典里:

ref_by_number = dict(
  (row.number, row)
  for row in db.session.query(reference).filter(reference.parent == 1)
)

然后你可以通过 ref_by_number[number] 来获取你想要的内容(这里假设 number 这个属性是唯一的)。

撰写回答