Я делаю проект, который сканирует веб-сайт, сохраняет некоторую информацию и отображает ее в виде графика.
Я использую Flask и ChartJS для отображения всего.
По сути, я сделалкласс с именем Snapshot выглядит примерно так:
class Snapshot:
list_1 = ['id1', 'id2', 'id3']
list_1_score = [ 10, 15, 20 ]
timestamp = '19:50'
Теперь то, что я хочу отобразить на диаграмме, это, конечно, все снимки, сделанные на этом веб-сайте.
К сожалению, ChartJS ожидаетэтот формат:
data: {
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
datasets: [{
label: 'My First dataset',
backgroundColor: window.chartColors.red,
borderColor: window.chartColors.red,
data: [
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor()
],
fill: false,
}, {
label: 'My Second dataset',
fill: false,
backgroundColor: window.chartColors.blue,
borderColor: window.chartColors.blue,
data: [
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor(),
randomScalingFactor()
],
}]
}
, который «несовместим» с моим.Имейте в виду, что записи в списке list_1 тоже могут исчезнуть.
Фактический шаблон, который я использую, -
data: {
labels: {{timestamps|safe}},
datasets: [
{% for item in labels %}
{label: '{{item}}',
{{ dataset[loop.index0] }}
{% if loop.length != loop.index1 %}
,
{% endif %}
{% endfor %}
]
}
Я немного запутался в том, как я могу генерировать наборы данных, учитывая, что:
1) Идентификаторы могут исчезнуть (контент был удален)
2) Идентификаторы могут появиться (контент был только что добавлен)
Конечно, если идентификаторы действительно появляются, они должны появляться, начиная сиз отметки времени снимка, в котором они появляются (как бы я это сделал? заполнить раздел данных None
или как?).