Jinja テンプレートで辞書のリストを反復処理するにはどうすればよいでしょうか? 質問する

Jinja テンプレートで辞書のリストを反復処理するにはどうすればよいでしょうか? 質問する

私は試した:

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 テンプレートでは動作しませんでした。

ベストアンサー1

データ:

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

Jinja2の反復では:

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

注記:

辞書項目のリストがあることを確認してください。 を取得した場合、UnicodeError辞書内の値に Unicode 形式が含まれている可能性があります。 その問題は で解決できますviews.py。 辞書がunicodeオブジェクトの場合、 にエンコードする必要がありますutf-8

おすすめ記事