Как отображать диаграммы PyChart.JS в web2py?

Итак, я пытаюсь использовать модуль PyChartJS, и пока у меня это есть. Это класс для PieChart:

class newPieChart(BaseChart):

def setData(self, _data: dict):
    self.data.data = [_ for _ in _data.values()]
    return

def setLabels(self, _labels: list):
    self.labels.labels = [_ for _ in _labels]
    return

type = ChartType.Pie

class labels:
    labels = []

class data:
    data = []

И я использую setData(), чтобы заполнить диаграмму данными

{'Allowance': 20.0, 'Bonus': 30.0, 'Other': 80.0, 'Salary': 300.0}

Теперь, когда я пытаюсь newPieChart.get(), я получаю обратно JSON, необходимый для рендеринга в JS. Вот что он возвращает:

{'type': 'pie', 'data': {'labels': [], 'datasets': [{'data': [20.0, 30.0, 80.0, 300.0]}]}, 'options': {'plugins': {}}}

Однако диаграмма не отображается, так как она отображается в моем коде JS:

{'type': 'pie', 'data': {'labels': [], 'datasets': [{'data': [20.0, 30.0, 80.0, 300.0]}]}, 'options': {'plugins': {}}}

Мой вопрос: как мне правильно отобразить эту диаграмму? Как это исправить? Вот как я реализовал это в своем коде JavaScript:

var ctx = document.getElementById('expense').getContext('2d');
var expensechart = new Chart(ctx, {{=chart}})
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
386
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я исправил проблему, вызвав встроенный помощник XML()

var expensechart = new Chart(ctx, {{=XML(chart)}})

Это устраняет проблему неправильного отображения JSON внутри HTML.

Другие вопросы по теме