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

问题描述 投票:5回答:1

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

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

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

django python-3.x flask dashboard bokeh
1个回答
7
投票

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

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

  • 使用server_document生成一个<script>标签,您可以将其模板到您的页面中,这将从Bokeh服务器将应用程序嵌入到页面中
  • 使用<iframe>将来自Bokeh服务器的URL嵌入到页面中

这些都可以正常工作。根据您的部署环境的复杂程度,可能有更多的“devops-y”类型的事情要做,以使用代理后面的Bokeh服务器或负载均衡器等.Running a Bokeh ServerUser's Guide部分有更多的信息任何需要深入了解这些细节的人。

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

  • 作为外部流程启动,并使用supervisord之类的东西进行管理。您可以在https://github.com/bokeh/demo.bokeh.org上看到这样的完整示例部署
  • 通过启动自己的Tornado IOLoop,在你的Flask / Django /任何应用中“嵌入”Bokeh服务器。你可以在examples/howto/server_embed中看到这种技术的一个例子。此外,这应该被认为是仙女高级用法。
© www.soinside.com 2019 - 2024. All rights reserved.