我正在在线阅读出色的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
的属性生成特定的图表。
感谢您的帮助!