29

Python 辞書を HTML のテーブルに出力する方法はありますか。私はpython辞書を持っており、使用してHTMLに送信しています

return render_template('index.html',result=result)

ここで、結果ディクショナリの要素を HTML にテーブルとして出力する必要があります。

4

7 に答える 7

49

Flask は、テンプレート フレームワークとして Jinja を使用します。テンプレート(html)で次のことを行うことができます

Jinja は、マークアップ レンダラーとして単独で使用することもできます。

Python3 / Jinja2

<table>
  <thead>
    <tr>
      <th>Key</th>
      <th>Value</th>
    </tr>
  </thead>
  <tbody>
  {% for key, value in result.items() %}
   <tr>
       <td> {{ key }} </td>
       <td> {{ value }} </td>
   </tr>
  {% endfor %}
  </tbody>
</table>

Python2 / ジンジャ

<table>
{% for key, value in result.iteritems() %}
   <tr>
        <th> {{ key }} </th>
        <td> {{ value }} </td>
   </tr>
{% endfor %}
</table>
于 2013-02-01T22:39:27.633 に答える
6

Flask-Table を確認してください。

ドキュメントの例 (少し編集):

from flask_table import Table, Col

# Declare your table
class ItemTable(Table):
    name = Col('Name')
    description = Col('Description')

items = [dict(name='Name1', description='Description1'),
         dict(name='Name2', description='Description2'),
         dict(name='Name3', description='Description3')]

# Populate the table
table = ItemTable(items)

# Print the html
print(table.__html__())
# or just {{ table }} from within a Jinja template
于 2015-04-24T15:04:24.047 に答える
2

python3 の場合、result.items の後に () はありません

<table>
{% for key, value in result.items %}
   <tr>
        <th> {{ key }} </th>
        <td> {{ value }} </td>
   </tr>
{% endfor %}
</table>
于 2018-11-28T21:52:20.283 に答える
1

を使用してディクショナリ項目を反復処理してからresult.iteritems()、キー/データをhtmlテーブルの行に書き込みます。

于 2013-02-01T18:04:44.017 に答える
1
#!/usr/bin/env python3

tbl_fmt = '''
<table> {}
</table>'''

row_fmt = '''
  <tr>
    <td>{}</td>
    <td>{}</td>
  </tr>'''


def dict_to_html_table(in_dict):
    return tbl_fmt.format(''.join(row_fmt.format(k, v) for k, v in in_dict.items()))


if __name__ == "__main__":
    d = {key: value for value, key in enumerate("abcdefg")}
    print(d)
    print(dict_to_html_table(d))

于 2014-04-27T20:20:15.377 に答える