我正在尝试通过tutorial在django页面上显示一个简单的散景图,但加载时网页是空白的 - 没有图表。
有一个类似的Stack Overflow问题,其中在html文件中引用了错误的散景版本 - 我检查以确保不是这里的情况。我也尝试使用render函数,因为render_to_response显然已被弃用,但同样的事情发生了。
<!DOCTYPE html>
<html lang='en'>
<head>
<link href="http://cdn.pydata.org/bokeh/release/bokeh-1.0.4.min.css" rel="stylesheet" type="text/css">
<link href="http://cdn.pydata.org/bokeh/release/bokeh-widgets-1.0.4.min.css" rel="stylesheet" type="text/css">
<script src="http://cdn.pydata.org/bokeh/release/bokeh-1.0.4.min.js"></script>
<script src="http://cdn.pydata.org/bokeh/release/bokeh-widgets-1.0.4.min.js"></script>
{{ script | safe }}
<title>testing bokeh...</title>
</head>
<body>
{{ div | safe }}
</body>
</html>
from django.shortcuts import render, render_to_response
from bokeh.plotting import figure, output_file, show
from bokeh.embed import components
def bokehTutorial(request):
x, y, = [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]
#Setup graph plot
plot = figure(title = 'Line Chart', x_axis_label = 'X axis', y_axis_label = 'Y axis', plot_width = 400, plot_height = 400)
#plot line
plot.line(x, y, line_width = 2)
#store components
script, div = components(plot)
#return to django homepage with components sent as arguments which will then be displayed
return render_to_response('appName/bokehTutorial.html', {'script': script, 'div': div})
#return render(request, 'appName/bokehTutorial.html', {'script': script, 'div': div})
我希望网页显示折线图。但是,加载时网页显示为空白。
我认为你需要把div
放在首位,因为script
正在搜索它以将代码放入其中。也可以简单地使用INLINE.render()
或CDN.render()
自动链接资源(除非你知道你在做什么)。请尝试以下方法:
的index.html
<!DOCTYPE html>
<html lang='en'>
<head>
{{ resources | safe }}
<title>testing bokeh...</title>
</head>
<body>
{{ div | safe }}
{{ script | safe }}
</body>
</html>
Django_app.朋友
from django.shortcuts import render, render_to_response
from bokeh.plotting import figure, output_file, show
from bokeh.embed import components
from bokeh.resources import INLINE
def bokehTutorial(request):
x, y, = [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]
#Setup graph plot
plot = figure(title = 'Line Chart', x_axis_label = 'X axis', y_axis_label = 'Y axis', plot_width = 400, plot_height = 400)
#plot line
plot.line(x, y, line_width = 2)
#store components
script, div = components(plot)
#return to django homepage with components sent as arguments which will then be displayed
return render_to_response('appName/bokehTutorial.html', {'resources' = INLINE.render(), 'script': script, 'div': div})
我得到了最后一行的语法错误。想法? return render('finish / ticket class.html',{'resources'= INLINE.render(),'script':script,'div':div})