Как перебирать словарь, передаваемый из Python / Tornado handler в шаблон Tornado?
Как перебирать словарь, передаваемый из обработчика Python/Tornado в шаблон Tornado ?
Я попробовал как
<div id="statistics-table">
{% for key, value in statistics %}
{{key}} : {{value['number']}}
{% end %}
</div>
Но это не работает, где статистика-словарь
statistics = { 1 : {'number' : 2}, 2 : {'number' : 8}}
2 ответа:
>>> from tornado import template >>> t = template.Template(''' ... <div id="statistics-table"> ... {% for key, value in statistics.items() %} ... {{key}} : {{value['number']}} ... {% end %} ... </div> ... ''') >>> statistics = { 1 : {'number' : 2}, 2 : {'number' : 8}} >>> print(t.generate(statistics=statistics)) <div id="statistics-table"> 1 : 2 2 : 8 </div>
Альтернатива:
<div id="statistics-table"> {% for key in statistics %} {{key}} : {{statistics[key]['number']}} {% end %} </div>
Вот еще один способ, которым вы можете это сделать:
/ / Предположим, что dico-это объект dictionary , переданный в качестве параметра в методе визуализации обработчика
{% autoescape None %} <script> var dict={{ json_encode(dico) }}; //Now,just iterate over dict which is a javascript associative array for (k in dict) { console.log("dico["+k+"] = "+dico[k]); } </script>