在Flask中为模板{%for%}循环中的每个元素生成特定于类的图形

时间:2019-05-08 21:54:42

标签: python flask jinja2 plotly

我正在在线阅读出色的Flask Mega-Tutorial,并试图更好地理解Jinja2模板以及如何利用{% for x in y %}功能。

我有以下模板。我的/events中有routes.py的路线。在routes.py函数中,我向它传递了Event对象的列表。我可以让模板遍历列表,并为每个Event创建一个div,并写出它的name属性-很简单-但最终我希望每个Event的div也具有由Event的特定事件数据的每个实例生成的图表。

现在,您可以看到我在for循环中生成了一个测试图图表,但是它仅成功创建了图表并将其分配给chart的div }循环。

{% for %}

现在,我希望每个 {% extends "base.html" %} {% block content %} <h1>Active Events</h1> <hr> {% for event in events %} <p> <a href="/event/{{ event.name }}">{{ event.name}}</a> </p> <div id="chart" class="chart"> </div> <!-- D3.js --> <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.6/d3.min.js"></script> <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script> <!-- Plotly.js --> <script src="https://cdn.plot.ly/plotly-latest.min.js"></script> <div id="test" class="test"> </div> <script type="text/javascript"> var data = [{ type: 'bar', x: [20, 14, 23], y: ['giraffes', 'orangutans', 'monkeys'], orientation: 'h' }]; Plotly.newPlot('chart',data); </script> {% endfor %} {% endblock %} div具有相同的图表,但最终我希望每个for循环都基于该Event的属性生成特定的图表。

感谢您的帮助!

0 个答案:

没有答案