如何使用Flask将字典的内容显示到网页中

时间:2017-05-24 10:34:14

标签: python dictionary flask jinja2

我遇到这个问题,我无法将字典的内容显示在网页中。

 web_indiv[url_sequence] = {'url' : converted_url , 'name' : x.name, 'count' : web_count_current }

    return render_template('video.html', web_data = web_indiv)

web_indiv 使用循环填充,然后作为web_data传递给video.html。

示例字典

{1: {'url': 'http://www.drpeppersnapplegroup.com/', 'name': 'Dr. Pepper-Snapple Group', 'count': 57}, 2: {'url': 'http://www.rccolainternational.com/', 'name': 'Royal Crown Cola', 'count': 41}}

注意:它是一个字典,里面包含另一个字典。

这就是我在html文件中已有的内容。

{% for key1,line in web_data.items() %}
     {% for key2,line_item in line.items() %}
     <tr>
        <td class="col-md-2">{{ line_item['url'] }}</td>
        <td class="col-md-2">{{ line_item['name'] }}</td>
        <td class="col-md-2">{{ line_item['count'] }}</td>
    </tr>
     {% endfor %}
{% endfor %}

数据不会显示在网页上。

感谢您花时间阅读我的问题。

2 个答案:

答案 0 :(得分:0)

 {% for key2,line_item in web_data[url_sequence].items %}
     <tr>
        <td class="col-md-2">{{ line_item }}</td>
    </tr>
 {% endfor %}

答案 1 :(得分:0)

如果它只是一个词典,你可以试试这个:

<html>
{{web_data[url_sequence]}}
<table>
    <tr>
        {%for value in web_data[url_sequence].values()%}
          <td class="col-md-2">{{ value }}</td>
        {% endfor %}
    </tr>
</table>
</html>

请注意,web_data[url_sequence]是字典。

这个将有订单(网址,名称,然后计数):

<tr>
    <td class="col-md-2">{{ web_data[url_sequence].url }}</td>
    <td class="col-md-2">{{ web_data[url_sequence].name }}</td>
    <td class="col-md-2">{{ web_data[url_sequence].count }}</td>
</tr>

真实的例子:

假设您有字典web_indiv,那么您想将其呈现给模板video.html

@app.route('/', methods=['GET'])
def root():
    web_indiv = {}
    url_sequence = 'test'
    web_indiv[url_sequence] = {'url':'testabc','name':'hello','count': 4}
    return render_template('video.html', web_data = web_indiv, url_sequence = url_sequence)

然后你可以在模板中使用dict:

<tr>
    <td class="col-md-2">{{ web_data[url_sequence].url }}</td>
    <td class="col-md-2">{{ web_data[url_sequence].name }}</td>
    <td class="col-md-2">{{ web_data[url_sequence].count }}</td>
</tr>

html会告诉你:

testabc hello 4