【问题标题】:Bokeh: Implementing AJAX DataSource in Pyramid frameworkBokeh:在 Pyramid 框架中实现 AJAX 数据源
【发布时间】:2018-07-05 09:09:47
【问题描述】:

我在实现一个使用 AJAX 更新嵌入在 html 页面中的散景图的网页时遇到了一点问题。

请参阅下面我尝试实现它的特定文件:

https://github.com/hhprogram/PyramidSite/blob/master/webgraphing/views/ajaxView.py

您应该能够将整个 webgraphing 存储库克隆到您的机器上,以便在本地运行金字塔网页。然后,您可以使用pserve deveopment.ini 运行金字塔服务,然后在浏览器中导航到“localhost:6543/bokehAJAX”。查看javascript控制台,它似乎在我的html中嵌入了散景div,但div的宽度为零。

最终目标是页面上应该有一个散景折线图,它会定期更新并向折线图添加数据。我不太确定我在这里做错了什么 - 任何朝着正确方向的推动将不胜感激。注意:我尝试过查看以下示例:Flask + Bokeh AjaxDataSource,但无济于事。

【问题讨论】:

  • 如果为 div 分配 100% 的宽度和高度会怎样?
  • 感谢您的建议。奇怪的是,当我将相应的散景 div 设置为 100% 的宽度和高度时,它不会改变 div 的尺寸,我认为返回的必须是 div 必须为空。认为当我手动将散景 div 设置为 400×400 像素时,这已得到确认,散景 div 仅显示为白色块,并且没有显示散景图或默认散景图控件。不知道为什么会这样(甚至用一个简单的数字代替了我的图,但仍然没有出现)
  • 开发者工具控制台或网络标签中是否有任何错误?
  • 感谢@StevePiercy!意识到我得到了一个 Uncaught Reference error: bokeh not defined 并回顾了一些烧瓶示例,意识到我需要 js_resources = INLINE.render_js() 并将相应的对象放入我的 jinja2 模板中。我还是 javascript 的新手,所以我不确定添加它的确切作用。我假设它定义/导入了所有必要的变量和 js 库,以便正确呈现我注入到 html 页面中的散景 javascript?

标签: python ajax pyramid bokeh


【解决方案1】:

问题出在我的bokeh_ajax 方法中的python 代码ajaxView.py 文件中,我丢失了:

from bokeh.resources import INLINE
...

jsResources = INLINE.render_js()

...
return {..., 'jsResources': jsResources}

然后在我的html/jinja2模板中需要添加:

<head>
...
{{ jsResources | safe }}
...
</head>

希望这对其他人有帮助!

【讨论】:

    猜你喜欢
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 2016-09-07
    • 2012-02-05
    • 2019-04-14
    • 2014-03-04
    • 1970-01-01
    相关资源
    最近更新 更多