如何将外部JavaScript库导入Bokeh生成的html

时间:2019-02-03 10:47:41

标签: javascript bokeh bokehjs

我想在我的Bokeh javascript回调中使用javascript库(特别是https://developer.amazon.com/docs/custom-skills/send-the-user-a-progressive-response.html)。如何指定此JavaScript库的导入,以便可以从Bokeh的js回调函数访问该库?

https://github.com/toji/gl-matrix/blob/master/dist/gl-matrix.js示例的实施例主要说说创建自定义散景模型。我对创建新模型并不特别感兴趣,只是想在回调中使用库函数来修改绘制的数据。

1 个答案:

答案 0 :(得分:0)

您可以创建Bokeh服务器目录结构。

  1. 创建一个名为myapp的目录
  2. 将您的Python脚本命名为main.py并放在其中
  3. 在此处创建一个名为模板的子目录
  4. 创建index.html,main.js和可选的styles.css文件,并将它们放在模板子目录中
  5. 打开终端,导航到比myapp目录高一级的目录,然后使用以下命令启动您的应用程序:bokeh serve --show myapp

以下示例适用于Bokeh v1.0.4。

目录结构:

myapp
   |
   +---main.py
   +---templates
        +---index.html
        +---main.js
        +---styles.css

main.py

from bokeh.plotting import curdoc
from bokeh.models import Button, CustomJS

button = Button(label = 'Click Me')
button.callback = CustomJS(code = """ alert($) """)

curdoc().add_root(button)

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <meta charset="utf-8">
    {{ bokeh_css }}
    {{ bokeh_js }}
    <style>
    {% include 'styles.css' %}
    </style>    
  </head>
  <body>
    <script>
    {% include 'main.js' %}
    </script>
    {{ plot_div|indent(8) }}
    {{ plot_script|indent(8) }}
  </body>
</html>  

请注意,通过这种方式,您可以包含本地JS库或样式表,也可以包含远程

main.js

$(document).ready(function() {
    alert('jQuery succesfully loaded !') 
});

styles.css

body { background: #111122; }