首页 文章

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

提问于
浏览
4

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

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

当我通过指定 bokeh.plotting.output_file() 执行 bokeh.io.show() 时,我得到正确的输出,但我正在尝试在我的Web应用程序中运行它 . 我错过了什么吗?或者是否有任何其他方法符合我的意图?

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

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 回答

  • 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
    

相关问题