原文:
www.kdnuggets.com/2018/05/overview-dash-python-framework-plotly-dashboards.html
作者:Damian Rodziewicz,Appsilon。
Appsilon 技术讲座 - 每周三我们举行内部会议,讨论技术。通过与社区分享我们的技术讲座并贡献开源,我们激发了讨论和成长,让其他人从我们的成就中学习并与我们分享。
最近,我有机会做一个关于Dash Python 框架的技术演讲。Dash 是一个用于构建仪表板的反应式框架。它们类似于使用Shiny R 框架构建的仪表板。在 Appsilon,我们已经在 Shiny 中构建了复杂的仪表板。我们还为成千上万的用户进行了部署。
Python 社区正在赶上,我们很高兴探索这些机会。值得比较这两者。我们已经进行了若干内部测试。我们已经为最具创新性的客户交付了 Dash 项目。从今天开始,我们为更广泛的受众交付用 Dash 编写的业务项目。以下是我们经验教训的快速总结!
本次技术演讲涵盖了基础知识和更高级的主题。你将从简单的开始,逐步完成自定义组件的构建和扩展。
技术演讲中涵盖的主题广泛列表:
-
Dash 是一个用于构建 web 应用程序的高效 Python 框架。
-
由 Plotly 创建和维护。 https://plot.ly/products/dash/。
-
基于 Flask、Plotly.js 和 React.js 上层构建。
-
仪表板使用纯 Python 实现。
-
Dash 是一个开源库,发布在宽松的 MIT 许可证下。
-
前端用 Python 生成
-
反应式计算抽象
-
每个 HTML 标签的组件类以及在 dash_html_components 包中实现的所有 HTML 参数的关键字参数
-
在 dash-core-components 中实现的交互式 HTML 元素
-
Dash-core-components 中实现的 Plotly python API,通过 Graph 类提供
更深入地了解 Dash 的交互性以及重新计算的工作原理。
你可以在 Dash 中实现自己的组件。有关如何做到这一点的信息,请访问 dash.plot.ly/plugins
我们已经开始实施自己的组件和助手:
-
Leaflet 地图
-
时间线(反应式水平时间线移植)
-
Mixpanel 钩子(允许使用 Mixpanel 的前端插件通过 cookie 识别用户)
-
IncludeScript(按需包含并运行外部脚本 - 如果应用在本地模式下运行则很有用)
图形的重新计算是阻塞的且是单线程的。然而,我们可以提取生成的 Flask 服务器,并使用 Gunicorn 来使计算并发。
Gunicorn ‘Green Unicorn’ 是一个用于 UNIX 的 Python WSGI HTTP 服务器。它是一个预分叉工作模型。Gunicorn 服务器与各种网络框架广泛兼容,实现简单,占用服务器资源少,并且相当迅速。
似乎仍然对并发用户数量有一定限制。
-
我们仍在探索它在众多并发用户下的可扩展性。
-
在某些时候,你将需要比 Dash 默认提供的更复杂的组件。
-
你将不得不在 React.js 中编写自己的组件。
-
或者你将不得不将现有组件从 React.js 移植到 Dash。
-
你很快会发现一些快速解决方案仍在开发中(Mapbox 栅格示例)。
-
在反应图中没有中间值。
-
你必须添加一个隐藏的 div 以存放中间数据(如 plotly 所建议的)。
-
你必须为每一个输出编写单独的函数,这迫使你重构代码。
-
有一些问题我们可能无法解决,除非深入了解 Dash 的工作方式。
-
可能仍然存在一些我们不知道的 Dash 问题 - 我们必须为我们的工作留出余地。
-
状态是保留在服务器上还是客户端上?与 Shiny 和 Dash 比较。
-
使用记忆化作为一种变通方法。讨论带有记忆化的线程。
-
在 Dash 和 Shiny 之间指定反应性有什么不同?每种模型的优缺点。
希望你喜欢!请在评论中告诉我你想接下来探索什么!
简介: Damian 喜欢称自己为技术狂热者,这一点很贴切,因为他是我们的联合创始人和首席数据科学家。他拥有计算机科学硕士学位和管理法律研究生学位。在创办 Appsilon 之前,他曾在 Accenture、UBS、Microsoft 和 Domino Data Lab 工作。他是一名热衷于游泳和心理学的爱好者。
原文。经许可转载。
相关:
1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。
2. 谷歌数据分析专业证书 - 提升您的数据分析能力
3. 谷歌 IT 支持专业证书 - 支持您的组织的 IT 需求