Django网站中的散景渲染问题

Posted

技术标签:

【中文标题】Django网站中的散景渲染问题【英文标题】:Issue with Bokeh rendering in Django website 【发布时间】:2017-05-14 03:15:43 【问题描述】:

views.py

from django.shortcuts import render
from django.template.loader import get_template
from django.http import HttpResponse
from bokeh.plotting import figure, output_file, show 
from bokeh.embed import components
# Create your views here.
def homepage(request):
    template = get_template('index.html')
    plot = figure()
    plot.line([1,2,3,4,5],[5,4,3,2,1])
    script, div = components(plot)
    html = template.render(locals())
    return HttpResponse(html)

templates/index.html

我使用散景生成以下代码:

<div class="bk-root"> 
    <div class="plotdiv" id="a3a4c265-dec8-4057-b9ed-d39afda33e2d"></div> 
</div> 

当我使用div | safe

但结果什么都没有显示

我应该怎么做才能使图形显示?

更新“模板/index.html”

 div | safe 
<script type="text/javascript" src="http://cdn.bokeh.org/bokeh/release/bokeh-0.9.0.min.js"></script>
 script | safe 

【问题讨论】:

您是否也在模板化返回的脚本?您必须在模板中同时包含脚本和 div。 这个问题可能会有所帮助:***.com/questions/29508958/… @bigreddot 是的,我也回来了。我在上面更新 你真的在使用 Bokeh 版本0.9.0!?那已经很老了,如果您正在运行 python 库的最新/当前版本,那么几乎可以肯定这种不匹配是问题所在。 CDN 中的 BokehJS 版本(即 script 标签中的版本)和安装的 python 库版本需要匹配。 thx!!它确实有效!!因为我在网上复制教程所以我忽略了如果版本匹配XDD 【参考方案1】:

CDN 中的 BokehJS 版本(在 script 标签中)必须与 python 库版本对应

【讨论】:

以上是关于Django网站中的散景渲染问题的主要内容,如果未能解决你的问题,请参考以下文章

在布局中绘制多个图表的散景会引发错误:(BOTH_CHILD_AND_ROOT)

在意大利地图上呈现数据的散景

带有 HoverTool 的散景线图

CustomJS 回调上的散景布局更新

带有 `import bokeh` 的烧瓶,带有 2 个没有外部散景服务器的散景图,而不是“模型只能由一个文档拥有”

使用 color_mapper 隐藏基于分类数据的散景字形