我想使用的数据是通过运行查询存储在MySQL数据库中,并显示数据与FusionCharts的帮助。
现在fusionCharts使用json数据格式,但MySQL数据没有。
如何使用fusionCharts显示我的数据库数据。我需要代码帮助。
这是我的views.py(这不是所有的views.py只是相关的一个。
from .fusioncharts import FusionCharts
def chart(request):
# Create an object for the column2d chart using the FusionCharts class constructor
monthly = FusionCharts('column2d', 'ex1', '600', '400', 'chart-1', 'json', """{
"chart": {
"caption": "Monthly offense",
"subcaption": "Month of July",
"xaxisname": "Country",
"yaxisname": "Offenses",
"numbersuffix": "",
"theme": "fusion"
},
"data": [
{
"label": "Jan",
"value": "290"
},
{
"label": "Feb",
"value": "260"
},
{
"label": "Mar",
"value": "180"
},
{
"label": "April",
"value": "140"
},
{
"label": "May",
"value": "115"
},
{
"label": "June",
"value": "100"
},
{
"label": "July",
"value": "30"
},
{
"label": "Aug",
"value": "30"
},
{
"label": "Sept",
"value": "30"
},
{
"label": "Oct",
"value": "30"
},
{
"label": "Nov",
"value": "30"
},
{
"label": "Dec",
"value": "30"
}
]
}""")
context = {
'all_count': all_count,
'total_high': total_high,
'total_medium': total_medium,
'total_low': total_low,
'monthly': monthly.render(),
'status': status.render(),
'category_chart': category_chart.render(),
'all_category': all_category.render()
}
# returning complete JavaScript and HTML code, which is used to generate chart in the browsers.
return render(request, 'dashboard.html', {'context': context})
到目前为止,我已经尝试过了。我做了一个字典,然后把它转换成json,并把它传递给我的chart对象。它在html模板上给出“无效数据”。
all_count = Offenses.objects.all().count()
open_status = Offenses.objects.filter(status__iexact='OPEN').count()
closed_status = Offenses.objects.filter(status__iexact='CLOSED').count()
hidden_status = Offenses.objects.filter(status__iexact='HIDDEN').count()
high1 = Offenses.objects.filter(magnitude=7).count()
high2 = Offenses.objects.filter(magnitude=6).count()
high3 = Offenses.objects.filter(magnitude=8).count()
high4 = Offenses.objects.filter(magnitude=9).count()
medium1 = Offenses.objects.filter(magnitude=5).count()
medium2 = Offenses.objects.filter(magnitude=4).count()
medium3 = Offenses.objects.filter(magnitude=3).count()
low1 = Offenses.objects.filter(magnitude=1).count()
low2 = Offenses.objects.filter(magnitude=2).count()
total_high = high1+high2+high3+high4
total_medium = medium1+medium2+medium3
total_low = low1+low2
status_data = {
'open_status': open_status,
'closed_status': closed_status,
'hidden_status': hidden_status,
}
status_data_json = json.dumps(status_data)
status = FusionCharts('doughnut2d', 'ex3', '600', '400', 'chart-2', 'status_data_json', """{
"chart": {
"caption": "Offense Status",
"showpercentvalues": "1",
"aligncaptionwithcanvas": "0",
"captionpadding": "0",
"decimals": "1",
"plottooltext": "<b>$percentValue</b> of offenses are <b>$label</b>",
"centerlabel": "# Users: $value",
"theme": "fusion"
},
"data": [
{
"label": "Opened offense",
"value": "open_status"
},
{
"label": "Closed offense",
"value": "5300"
}
]
}""")
1条答案
按热度按时间nwsw7zdq1#
除了直接在JSON/XML代码中指定图表数据(或存储图表数据的文件的URL)之外,您还可以从数据库中获取图表数据。
Django模型Map(大致)到一个数据库表-
示例代码-
要了解更多有关此功能的信息,请参阅-https://www.fusioncharts.com/dev/getting-started/django/create-charts-in-django-using-database
希望这对你有帮助。