Streamlit:几行 Python 把数据脚本变成网页应用

streamlit 在 GitHub 上已经拿到 44,797 Star 了。

用纯 Python 写数据工具的人都会碰到同一个问题:分析做完了,怎么让别人也能用?做成网页得写前后端,部署又麻烦。Streamlit 解决的就是这件事:把 Python 数据脚本直接变成可交互的网页应用,不需要写 HTML、CSS 或 JavaScript。

1、这玩意儿是干嘛的

一句话:让你的 Python 数据分析脚本变成别人能点开用的网页 App。

你写了数据可视化的代码,Streamlit 帮你把它变成一个网页。用户拖滑块、选下拉框、点按钮,数据实时变化,图表跟着更新。整个过程不需要前端知识,纯 Python 搞定。

正文顶部截图

2、为什么用它

做过数据产品的人知道那种断层。Jupyter Notebook 里图表画得再漂亮,给别人看要么截图,要么让他装环境跑一遍。做成 Dash 或 Flask 应用又得写一堆样板代码,光布局和回调就能耗掉半天。

Streamlit 把这个断层填上了。它把写 Python 脚本到得到一个网页应用之间的距离缩到了最短。几行代码就有一个带交互控件的页面,而且每次保存文件页面自动刷新,不需要手动重启服务器。

3、代码长什么样

一个最简单的例子:

import streamlit as st

x = st.slider('Select a value')
st.write(x, 'squared is', x * x)

三行代码,页面上出现一个滑块,拖动它,右边的计算值实时更新。不需要写 HTML 的 input 标签,不需要写 JavaScript 的事件监听,Streamlit 帮你全处理了。

更复杂的场景也一样省力。Streamlit 官方有一个自动驾驶汽车数据集浏览器的 Demo,包含 YOLO 实时目标检测,整个应用不到 300 行 Python,Streamlit 的 API 调用只有 23 个。

README区域截图

4、安装使用

pip install streamlit
streamlit hello

跑完这两行命令,一个示例页面就在浏览器里打开了。然后你就可以写自己的 app.py,用 streamlit run app.py 运行。

写完的 App 可以部署到 Streamlit Community Cloud,免费托管。社区里已经积累了大量的 App 案例和讨论,遇到问题直接搜基本都能解决。

5、适合哪些人用

  • 做数据分析或机器学习、想让结论被团队里其他人交互式探索的工程师
  • 需要快速搭建内部工具原型的数据团队
  • 想用 Python 做仪表盘但不想折腾前端框架的后端开发者

Streamlit 做工具原型和内部面板这件事,确实快。

hon 做仪表盘但不想折腾前端框架的后端开发者

Streamlit 做工具原型和内部面板这件事,确实快。

更多推荐