Flask / Django服务器和散景服务器

时间:2016-12-20 08:09:30

标签: django python-3.x flask dashboard bokeh

我想用Python 3.x(像Shiny for R)实现一个动态的基于Web的仪表板

Bokeh似乎很有希望从我在YouTube上看过和看过的内容。

目前尚不清楚我何时何地需要Bokeh服务器和Flask / Django服务器?他们会相互补充吗?或者我可以在任何一个上工作?他们俩都会为同样的事情服务吗?

1 个答案:

答案 0 :(得分:7)

Bokeh服务器基于Tornado,它本身就是一个功能强大的Python Web框架和异步网络库。根据您的需要,可以简单地编写一个Bokeh应用程序,让它以您想要的方式显示您想要的一切。 Bokeh提供了一些通过Jinja2模板自定义应用程序外观的功能。您可以在Gapminder Demo http://demo.bokeh.org上查看相关示例。

但是,您可能有更复杂的需求,特别是在身份验证和访问方面,或者您需要集成到现有站点。在这种情况下,您可能正在考虑将Bokeh应用程序嵌入到另一个页面中,该页面可能是从Flask,Django或IIS或其他任何内容提供的。有两种基本方法可以做到这一点:

  • 使用server_document生成<script>标记,您可以将其设置到页面中,该标记会将Bokeh服务器中的应用程序嵌入到页面中
  • 使用<iframe>将来自Bokeh服务器的网址嵌入页面

其中任何一个都可以正常工作。根据部署环境的复杂程度,可能需要更多“devops-y”类型的事情来使用代理后面的Bokeh服务器或负载均衡器等。{{3}的Running a Bokeh Server部分对于需要深入研究这些细节的人来说,它有更多的信息。

如果您将Bokeh服务器中的应用程序嵌入到另一个网页中,则Bokeh服务器确实需要启动并运行才能为该应用程序提供服务!如何实现这一点是一个单独的问题,有几种方法可以做到:

  • 作为外部流程启动,并使用supervisord之类的东西进行管理。您可以在User's Guide

  • 中查看完整的示例部署
  • 通过启动自己的Tornado IOLoop在你的Flask / Django /任何应用中“嵌入”一个Bokeh服务器。您可以在https://github.com/bokeh/demo.bokeh.org中看到此技术的一个示例。此外,这应该被认为是仙女高级用法。