5

Bokeh の「create_html_snippet」メソッドを使用して、パンダ/シーボーン プロットを Web ページに表示しようとしています。

テストとして、@rpazyaquian のデモ リポジトリ ( https://github.com/rpazyaquian/bokeh-flask-tutorial/wiki/Rendering-Bokeh-plots-in-Flask ) を複製しました。残念ながら、リポジトリが作成されてからボケが変更されたため、機能しません。

ページ上のメインの HTML 出力は、一意のボケ ファイル名が明らかに異なることを除いて、まったく同じです。

全体的な唯一の違いは、bokeh によって生成された *.embed.js ファイルにあります。以下の抜粋に示すように、そのファイルのホスト/静的パス変数は正しく機能していないようです。組み込みの Flask 開発サーバーと gunicorn の両方でテスト済み。

@rpazyaquian のHeroku サイトの作業バージョンの上部は次のとおりです。

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";
}

明らかな問題:

  1. ホストはそうではありませんhttp://localhost:5006.devhttp://127.0.0.1:5000/サーバーを使用しているとき、またはgunicorn / nginxを使用している場合に選択したものは何でもです.
  2. 「bokehjs」フォルダーがどこに設定されているのかわかりませんが、ここでは関係ないようです。

これを修正できる Bokeh の変更点に関するアイデアはありますか? または、別の方法を使用して Flask テンプレートを介して Bokeh プロットを正常に提供している人は誰でも - より良いルートがあるかどうか教えてください。グラフの HTML スニペットを返してテンプレートに出力しようとしています。

4

1 に答える 1

4

更新: この関数は廃止されました。より優れたbokeh.embedモジュールを使用してください。

https://github.com/ContinuumIO/bokeh/blob/master/bokeh/embed.py

次の場所で、その使用例をいくつか見ることができます。

https://github.com/ContinuumIO/bokeh/tree/master/examples/embed

于 2014-07-17T12:36:10.367 に答える