Pixiedust: проблема цикла для построения графиков
Мне нравится эффективность и действенность Python при обработке данных, поэтому я решил попробовать Pixiedust/Pixieapp для построения диаграмм, которыми моя команда должна легко поделиться. Моя цель - отобразить некоторые линейные диаграммы из входной переменной temp_arr (list). для этого может потребоваться цикл for, чтобы получить данные каждого массива из temp_arr и присвоить их pd_entity. Я могу получить результат нескольких диаграмм из кода, однако каждая диаграмма одинакова и, кажется, содержит один и тот же набор данных, но не из другого набора данных массива из temp_arr, как отключено. Ниже представлена моя демонстрация кода, благодарю за помощь. Я застрял почти на неделю;) что-то меня смущает: -какова область видимости переменной в шаблоне Jinja /javascript/pd_script? как мы можем передавать данные между этими областями - я использовал неправильные параметры pd_options в моем коде, из-за которых диаграммы не менялись? там'меньше справочного примера в WWW....
(основной HTML-код предназначен для выбора пользователем дат, а другой маршрут - для отображения результата диаграммы в цикле. Я еще не пробовал выбранные даты как переменную влияния...)
from pixiedust.display.app import *
@PixieApp
class HelloWorldPixieApp:
@route()
def main(self):
return"""
Start Date:
<input type="date" id="start_date{{prefix}}" name="startdate"><br>
End Date:
<input type="date" id="end_date{{prefix}}" name="enddate"><br>
<input pd_options="clicked=true;start_info=$val(start_date{{prefix}});end_info=$val(end_date{{prefix}})" type="button" value="Click Me">
"""
@route(clicked="true",start_info="*",end_info="*")
@templateArgs
def _clicked(self,start_info,end_info):
try_index=0
self.chart_index=0
return """
<div>{{this.start_num}},{{this.end_num}}</div>
{%for detail in this.pixieapp_entity%}
{%if loop.index0>5 and loop.index0<10%}
<div>this is: {{loop.index0}}
</div>
{%set try_index=loop.index0%}
<div> try_index is: {{try_index}}
</div>
<div>
<div pd_options="handlerId=lineChart;keyFields=_id;rendererId=bokeh;valueFields=value,up_limit,low_limit"
pd_entity="chart_data" pd_render_onload>
<pd_script>
self.chart_data=self.pixieapp_entity[{{try_index}}] {# tried "self.chart_data=detail" here but it didn't work #}
</pd_script>
</div>
</div>
{%endif%}
{%endfor%}
"""
#run the app
HelloWorldPixieApp().run(temp_arr)