Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何构造数据以便在Flask中轻松构建HTML表_Python_Html_Flask - Fatal编程技术网

Python 如何构造数据以便在Flask中轻松构建HTML表

Python 如何构造数据以便在Flask中轻松构建HTML表,python,html,flask,Python,Html,Flask,我试图从存储在表中的数据创建HTML表。我的数据从表中读取,并转换为列表,例如: x = {'date':[u'2012-06-28', u'2012-06-29', u'2012-06-30'], 'users': [405, 368, 119]} 我的目标是为任意列表长度创建具有以下结构的HTML表: <table> <thead> <th>Date</th> <th>Users</th> &l

我试图从存储在表中的数据创建HTML表。我的数据从表中读取,并转换为列表,例如:

x = {'date':[u'2012-06-28', u'2012-06-29', u'2012-06-30'], 'users': [405, 368, 119]}
我的目标是为任意列表长度创建具有以下结构的HTML表:

<table>
  <thead>
    <th>Date</th>
    <th>Users</th>
  </thead>

  <tbody>      
    <tr>
      <td>2012-06-28</td>
      <td>405</td>
    </tr>
    <tr>
      <td>2012-06-29</td>
      <td>368</td>
    </tr>
    <tr>
      <td>2012-06-30</td>
      <td>119</td>
    </tr>
  </tbody>
</table> 

日期
使用者
2012-06-28
405
2012-06-29
368
2012-06-30
119
我在烧瓶模板中尝试了两种不正确的方法:

<tbody>
  {% for line in x %}
    <tr>
      <td>{{ x.date|tojson|safe }}</td>
      <td>{{ x.users }}</td>
     </tr>
   {% endfor %}
</tbody>
{% for row in x %}
    <tr>
      <td>{{ row[0]|tojson|safe }}</td>
      <td>{{ row[1] }}</td>
    </tr>
{% endfor %}

{x%中的行的%s}
{x.date | tojson | safe}
{{x.users}}
{%endfor%}
将整个列表打印到每个列中

以及:

{x.date%中的日期%
{{date | tojson | safe}}
{%endfor%}
{%x.users%中的用户为%x}
{{users}}
{%endfor%}
只需将所有内容打印到第一列

这些实验和许多其他死胡同让我相信,鉴于我目前的数据结构,没有简单的方法来构建表

鉴于此,我有两个问题:
1) 如何使用当前的数据结构构建表?
2) 为这个用例构造数据的标准或理想方法是什么


提前感谢。

如您所说,您可以更改数据结构,也可以更改模板代码。以下是保持当前结构的一种方法:

{% for row_index in range(x['date']|count) %}
    <tr>
      <td>{{ x[row_index]['date']|tojson|safe }}</td>
      <td>{{ x[row_index]['users'] }}</td>
    </tr>
{% endfor %}
然后使用此模板:

<tbody>
  {% for line in x %}
    <tr>
      <td>{{ x.date|tojson|safe }}</td>
      <td>{{ x.users }}</td>
     </tr>
   {% endfor %}
</tbody>
{% for row in x %}
    <tr>
      <td>{{ row[0]|tojson|safe }}</td>
      <td>{{ row[1] }}</td>
    </tr>
{% endfor %}
然后,您可以通过以下方式访问数据:

{% for row in x %}
    <tr>
      <td>{{ row['date']|tojson|safe }}</td>
      <td>{{ row['user'] }}</td>
    </tr>
{% endfor %}
{x%中的行的%
{{row['date']| tojson | safe}}
{{row['user']}
{%endfor%}

是的,你真的想使用字典列表而不是列表字典,这在Jinja2中效果更好。

你可能会使用或使用更复杂的工具。

这很好,谢谢。在我接受之前,你能给我指一些关于管道命令的文档吗?我不知道还有更多的人。Flask使用Jinja2作为模板,因此您可以使用以下任何内容:。
{% for row in x %}
    <tr>
      <td>{{ row['date']|tojson|safe }}</td>
      <td>{{ row['user'] }}</td>
    </tr>
{% endfor %}