在django模板中渲染散景小部件

时间:2016-04-18 08:56:39

标签: python django bokeh

我是django和bokeh的新手。 我试图渲染一个简单的散景图,这些散景图由几个选项支持,这些选项基本上允许我在django Web应用程序中调整我的情节内容。

当从script获取的divbokeh.embed.components()元素作为上下文变量传递给模板时,将呈现这些图。 当我在bokeh.io.vform对象中保存小部件和绘图时,同样没有工作。

我通过指定bokeh.io.show()执行bokeh.plotting.output_file()时输出正确,但我试图在我的网络应用程序中运行此输出。 我错过了什么吗?还是有其他方法可以满足我的意图吗?

我只是渲染一个散景小部件的代码如下:

  

views.py

#django imports 
from bokeh.embed import components
from bokeh.plotting import figure
from bokeh.io import vform
from bokeh.models.widgets import Select
def test(request):
    s = Select(title="test", value="a", options=['a','b','c'])
    script,div = components(s)
    return render(request,'test.html',RequestContext(request,{'script':script,'div':div}))
  

的test.html

<html>
<head>
      <link href="http://cdn.pydata.org/bokeh/release/bokeh-0.11.1.min.css" rel="stylesheet" type="text/css">
       <script src="http://cdn.pydata.org/bokeh/release/bokeh-0.11.1.min.js"></script>
</head>
{% load staticfiles %}
<body>
      {{ div | safe }}
      {{ script | safe }}
</body>
</html>

我希望在django中从test()启动test.html时会呈现一个select表单元素。但并没有发生。

1 个答案:

答案 0 :(得分:1)

BokehJS最近被拆分为单独的部分,以提供更灵活的使用选项,具体取决于实际使用的库的哪些部分。因为在许多情况下通常会自动处理加载资源,所以在文档中突出显示这种划分是无意间忽略的。但是,了解嵌入非常重要。更新文档存在问题,但您需要知道的是,如果您使用小部件,您现在还需要从CDN加载其他脚本:

http://cdn.pydata.org/bokeh/release/bokeh-widgets-0.11.1.min.js
http://cdn.pydata.org/bokeh/release/bokeh-widgets-0.11.1.min.css