I was trying to embed a bokeh plot into my django app. I followed the instructions given on Bokeh website and another question.
I am getting the following error on my browser console and not getting any plot output:
Uncaught TypeError: Bokeh.safely is not a function
at HTMLDocument.fn (localhost/:15)
I am not a JS guy but Bokeh.safely is present in the script generated by Bokeh. I have attached the script generated at the end:
My views.py file:
from django.shortcuts import render
from bokeh.plotting import figure
from bokeh.resources import CDN
from bokeh.embed import components
def showGraph(request):
arr = [1,4,9,16,25,36]
y = [1,2,3,4,5,6]
plot = figure()
plot.line(arr, y)
script, div = components(plot, CDN)
return render(request, "data_collection/simple_chart.html", {"script": script, "div": div})
simplechart.html file:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Bokeh example</title>
<link rel="stylesheet" href="http://cdn.bokeh.org/bokeh/release/bokeh-0.12.0.min.css">
<link rel="stylesheet" href="http://cdn.bokeh.org/bokeh/release/bokeh-widgets-0.12.0.min.css">
<script src="http://cdn.bokeh.org/bokeh/release/bokeh-0.12.0.min.js"></script>
<script src="http://cdn.bokeh.org/bokeh/release/bokeh-widgets-0.12.0.min.js"></script>
{{ script | safe }}
</head>
<body>
{{ div | safe }}
</body>
</html>
Script generated by bokeh:
(function(){
var fn = function(){
Bokeh.safely(function(){
var docs_json = {....json.....};
var render_items = [
{"docid": "27fe9292-3142-4617-b273-f9d932e47df3", "elementid": "7b2ef36e-a7d2-4a6b-88e6-186edecde6ca",
"modelid": "741db3b0-26ce-45c1-86b4-d95394c7331f"}];
Bokeh.embed.embed_items(docs_json, render_items);
});
};
if (document.readyState != "loading") fn();
else document.addEventListener("DOMContentLoaded", fn);
})();
You are loading version 0.12.0
of BokehJS from CDN in your simplechart.html
template, but it's almost certainly the case that you are using a newer version of the Python Bokeh library than that. The versions of BokehJS and (Python) Bokeh library must match.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With