Я пытаюсь использовать метод Боке create_html_snippet для представления графиков панд / морских обитателей на веб-странице.
В качестве теста я клонировал демо-репозиторий @rpazyaquian здесь - https://github.com/rpazyaquian/bokeh-flask-tutorial/wiki/Rendering-Bokeh-plots-in-Flask. К сожалению, это не работает из-за изменения боке с момента создания репо.
Основной вывод HTML на странице точно такой же, за исключением того, что, очевидно, уникальное имя файла боке отличается.
Единственное отличие в целом заключается в файле * .embed.js, созданном с помощью боке. Как показано в приведенных ниже отрывках, переменные хоста / статического пути в этом файле, похоже, не работают должным образом. Протестировано как со встроенным сервером разработки Flask, так и с Gunicorn.
Вот верхняя часть рабочей версии на сайте Heroku @ rpazyaquian:
var host = "";
var staticRootUrl = "http://localhost:5006/bokeh/static/";
if (host!=""){
staticRootUrl = host + "/static/";
var bokehJSUrl = window.location.protocol + "//" + staticRootUrl + "js/bokeh.js";
}
else {
bokehJSUrl = staticRootUrl +"js/bokeh.js";
}
Вот неработающая локальная версия, использующая Heroku 0.4:
var host = "";
var staticRootUrl = "http://localhost:5006/bokeh/static/";
if (host!=""){
staticRootUrl = "//" + host + "/bokehjs/static/";
var bokehJSUrl = staticRootUrl + "js/bokeh.js";
}
else {
bokehJSUrl = staticRootUrl +"js/bokeh.js";
}
Очевидные проблемы:
- Хост не
http://localhost:5006
, этоhttp://127.0.0.1:5000/
при использовании сервера разработки или что бы вы ни выбрали при использовании gunicorn / nginx - Я не знаю, где устанавливается папка bokehjs, но здесь это не имеет значения.
Есть идеи о том, что изменилось в боке, что могло бы это исправить? Или, в качестве альтернативы, любой, кто успешно обслуживает графики Bokeh с помощью шаблонов Flask, используя альтернативный метод - дайте мне знать, есть ли лучший путь. Я просто пытаюсь вернуть фрагмент HTML для диаграммы для вывода в шаблон.