【问题标题】:Flask render select based on a list of tuples基于元组列表的 Flask 渲染选择
【发布时间】:2021-03-11 02:05:43
【问题描述】:

我有一个从flask render_template 发送的类似这样的数据

一个名为product_list的元组列表

[(22, '1', 'false'), (94, '2', 'true'), (95, '3', 'false'), (100, '4', 'false'), (101, '5', 'false'), (102, '6', 'false'), (103, '7', 'false'), (104, '8', 'false'), (105, '9', 'false'), (106, '10', 'false'), (120, '11', 'false'), (121, '12', 'false')]

基本上

元组中的第一项是“product_id”,第二项是“product_version”,第三项是“is_product_active”

我正在尝试在我的 html 上的 select 标记中呈现这些元组。

列表的排序方式使得列表中的第一项在下拉列表中被假定为selected,所以我尝试了这个

<select size="2" data-width="fit" style="line-height:2px">
    <option value="{{product_list[0][0]}}" selected >Version: {{product_list[0][1]}}</option>
    {% for product in product_list|slice:"1:" %}
          <option value="{{product[0]}}">Version {{product[1]}}</option>
    {% endfor %}
</select>

这不起作用,flask jinja 抛出错误说jinja2.exceptions.TemplateSyntaxError: expected token 'end of statement block', got 'string'

大部分来自product_list|slice:"1:"

我基本上将数组的第一项设置为选中,然后我尝试跳过数组中的第一项并简单地在下拉列表中添加其他项。

这样做的更简洁的方法是什么,它也有助于提高 html 代码的可读性。

【问题讨论】:

    标签: html flask jinja2


    【解决方案1】:

    您可以使用括号表示法。

    {% for product in product_list[1:] %}
    

    【讨论】:

      猜你喜欢
      • 2018-11-02
      • 1970-01-01
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 2021-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多