Для цикла в jinja2 для файла json - PullRequest
0 голосов
/ 24 декабря 2018

Я создаю таблицу HTML в Flask с помощью файла json.Вот мой файл json:

{
 "data1": {
  "key1": 49371,
  "key2": 699
 },
 "data2": {
  "key1": 890,
  "key2": 6536
 }
}

У меня есть пароль json в render_template

@app.route('/')
def index():
    jsonFile = open("Stats.json", "r")  # Open the JSON file for reading
    data = json.load(jsonFile)  # Read the JSON into the buffer
    jsonFile.close()  # Close the JSON file
    return render_template('index.html', data= data)

Так как я могу создать строку таблицы, например, jinja2 в колбе

<tbody>
        <tr>
          <td>Data1</td>
          <td>key1</td>
          <td>key2</td>
        </tr>
        <tr>
          <td>Data2</td>
          <td>key1</td>
          <td>key2</td>
        </tr>
<tbody>

Заранее спасибо.Это мой первый вопрос.извините, если я сделал какую-либо ошибку:)

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018
<table>
    <tr>
        <th>Data</th>
        <th>Key 1</th>
        <th>Key 2</th>
    </tr>
{% for i in data %}
    <tr>
        <td>{{ i.key }}</td>
        <td>{{ i.field1 }}</td>
        <td>{{ i.field2 }}</td>
    </tr>
{% endfor %}
</table>
0 голосов
/ 24 декабря 2018

Словари упорядочены не так, как списки.Если вы хотите, чтобы строки располагались по порядку, учитывая использование формата, подобного

[
    {
        "key": "data1",
        "field1": 49371,
        "field2": 699
    },
    {
        "key": "data2",
        "field1": 890,
        "field2": 6536
    }
]

, тогда вы можете использовать простой шаблон, например

<table>
{% for row in data %}
    <tr>
        <td>{{ row.key }}</td>
        <td>{{ row.field1 }}</td>
        <td>{{ row.field2 }}</td>
    </tr>
{% endfor %}
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...