当前位置: 首页 > 面试题库 >

如何迭代Jinja模板中的词典列表?

阴永福
2023-03-14
问题内容

我试过了:

list1 = [{"username": "abhi", "pass": 2087}]
return render_template("file_output.html", list1=list1)

在模板中:

<table border=2>
  <tr>
    <td>
      Key
    </td>
    <td>
      Value
    </td>
  </tr>
  {% for dictionary in list1 %}
    {% for key in dictionary %}
      <tr>
        <td>
          <h3>{{ key }}</h3>
        </td>
        <td>
          <h3>{{ dictionary[key] }}</h3>
        </td>
      </tr>
    {% endfor %}
  {% endfor %}
</table>

上面的代码将每个元素分成多个字符:

[

{

"

u

s

e

r

...

我在一个简单的Python脚本中测试了上述嵌套循环,但效果很好,但在Jinja模板中却无法正常工作。


问题答案:

数据:

parent_dict = [{'A':'val1','B':'val2'},{'C':'val3','D':'val4'}]

在Jinja2迭代中:

{% for dict_item in parent_dict %}
   {% for key, value in dict_item.items() %}
      <h1>Key: {{key}}</h1>
      <h2>Value: {{value}}</h2>
   {% endfor %}
{% endfor %}

注意:
确保你有字典项列表。如果得到的UnicodeError可能是字典中的值包含unicode格式。views.py 如果你的字典是unicode对象,则可以解决该问题,你必须将其编码为utf-8



 类似资料:
  • 问题内容: 我希望能够将当前循环迭代输出到我的模板。 根据文档:http : //wsgiarea.pocoo.org/jinja/docs/loops.html,我正在尝试使用一个loop.counter变量。 我有以下内容: 虽然没有任何输出到我的模板。正确的语法是什么? 问题答案: 循环内部的计数器变量在jinja2中称为 loop.index 。 有关更多信息,请参见http://jinj

  • 问题内容: 给定一个像这样的字典: 如何创建一个字典列表,该列表结合了第一个字典键的各种值?我想要的是: 问题答案: 我认为您想要笛卡尔积,而不是排列,在这种情况下可以提供帮助:

  • 问题内容: 我有一条这样定义的路线: 现在,在模板中,我想使用以下方式调用该路由url_for(): 我试过了: 那抛出一个 谁能建议如何将出现在模板中的转换为,以便在单击时调用正确的名称? 问题答案: 里面的所有内容都是类似Python的表达式。你无需在其中使用另一个引用变量。 放下多余的括号: (请注意,该函数使用终结点名称,而不是URL路径;在你的示例中,该名称默认为该函数的名称)。

  • 问题内容: 我的字典看起来像这样(字典中的字典): 现在,我只是想在模板上显示信息,但是我很挣扎。我的模板代码如下: 它只是在模板上显示“ 0”? 我也尝试过: 这甚至不显示结果。 我想也许我需要更深入地迭代一个级别,所以尝试了一下: 但这不会显示任何内容。 我究竟做错了什么? 问题答案: 可以说你的数据是- 你可以使用该data.items()方法来获取字典元素。注意,在django模板中,我们

  • 我有一个类,声明如下:comparator: 搜索功能不转换条件: 你能帮忙吗? 翻译错误: main.cpp:101:44:从这里实例化 main.cpp:55:13: 错误: 与调用 '(const std::equal_to) 不匹配(const std::p air

  • 问题内容: 我想做类似的事情: 变量p来自test.py,它是一个列表[‘a’,’b’,’c’,’d’] 结果输出是: 1 2 3 4 问题答案: 您可以使用: 检查模板设计器文档。 在最近的版本中,由于作用域规则,下面的 不 工作: