【发布时间】:2015-03-04 19:04:12
【问题描述】:
第一次海报,长期读者。我花了很长时间寻找这个问题的答案,这让我认为这是我所缺少的一些基本的东西。
我正在尝试提取数据库表中保存的数据并将其传递给在 Highcharts 图中显示。在检查源代码时,我没有从 Django 或客户端收到任何错误。
使用:Django 1.7 和 Python 3.4
views.py:
#unit/views.py
from django.http import JsonResponse
from django.shortcuts import render
from unit.analysis_funcs import ChartData
def chart_data_json(request):
data = {}
data['chart_data'] = ChartData.get_data()
return JsonResponse(data, safe = True)
def plot(request):
return render(request, 'unit/data_plot.html', {})
get_data() 函数:
#unit/analysis_funcs.py
from unit.models import CheckValve
class ChartData(object):
def get_data():
data = {'serial_numbers': [], 'mass': []}
valves = CheckValve.objects.all()
for unit in valves:
data['serial_numbers'].append(unit.serial_number)
data['mass'].append(unit.mass)
return data
模板:
<!-- templates/unit/data_plot.html -->
{% extends "base.html" %}
{% block extrahead %}
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
{% endblock %}
{% block rootcontainer %}
<div id="container" style="width:100%; height:400px;"></div>
{% endblock %}
{% block overwrite %}
<!-- Overwrite the base.html jQuery load and put in head for Highcharts to work -->
{% endblock %}
{% block extrajs %}
<script>
$(document).ready(function() {
var options = {
chart: {
renderTo: 'container',
type: 'line'
},
series: [{}]
};
var ChartDataURL = "{% url 'chart_data_json' %}";
$.getJSON('ChartDataURL', function(data) {
options.xAxis.categories = data['chart_data']['serial_numbers'];
options.series[0].name = 'Serial Numbers';
options.series[0].data = data['chart_data']['mass'];
var chart = new Highcharts.Chart(options);
});
});
</script>
{% endblock %}
最后是网址:
from unit import views, graphs
urlpatterns = patterns('',
url(r'^chart_data_json/', views.chart_data_json, name = 'chart_data_json'),
url(r'^plot/', views.plot, name = 'plot'),
)
一切似乎都在运行,但 Highchart 绘图没有渲染。我认为这是我将 JSON 数据从 view.py 移动到 template.html 的方式,但在盯着它看了这么久之后,我开始眼花缭乱了。
任何帮助都会很棒!
【问题讨论】:
-
控制台是否收到任何错误?
-
@SebastianBochan 检索站点时没有错误。对主 url 和调用数据的 url 都获得典型的 200 响应
标签: python json django highcharts