Streamlit:用纯 Python 构建数据应用

Streamlit 在 GitHub 上拿到了 44,935 个 Star,是一个专注于数据应用开发的 Python 框架。

正文顶部截图

README区域截图

Streamlit 解决的问题很直接:数据分析师和算法工程师往往熟悉 Python,但不具备前端开发能力。Streamlit 让这类用户用纯 Python 脚本就能生成可交互的 Web 应用,不需要写 HTML、CSS 或 JavaScript。

上手门槛低

安装只需一行命令,编写一个 .py 文件,几行代码就能跑起来一个带交互的页面。官方 Quickstart 示例是一个滑块计算平方值,总共不到五行代码:

import streamlit as st
x = st.slider("Select a value")
st.write(x, "squared is", x * x)

浏览器中打开对应地址,拖动滑块时计算结果实时更新。

实时预览

编辑脚本后保存,浏览器中的应用页面会自动刷新,不需要手动重启服务。调试周期被压缩到秒级,写代码和看效果之间几乎没有等待时间。

内置组件丰富

Streamlit 自带滑块、下拉框、文本输入等交互组件,同时集成了 Matplotlib、Plotly、Altair 等主流可视化库的渲染能力。DataFrame 数据可以直接在页面上渲染成可排序、可筛选的表格,不需要额外配置前端框架。

安装方式

通过 pip 直接安装:

pip install streamlit
streamlit hello

执行后浏览器会打开一个官方示例应用,包含多种功能演示。如果能正常显示,说明安装成功。

部署方案

Streamlit 提供 Community Cloud 平台,支持免费部署。在代码仓库中配置好依赖文件后,通过平台注册并关联 GitHub 仓库即可完成部署。对于团队内部使用,也可以通过 Docker 容器化部署,适合对数据安全有要求的场景。

应用场景

从官方 Gallery 来看,Streamlit 的典型用途包括:

  • LLM 和聊天机器人应用的前端界面
  • 数据分析仪表盘
  • 科学计算结果的可视化展示
  • 金融数据看板
  • 地理信息展示

扩展机制

Streamlit 支持通过 Components 机制扩展功能。社区开发者已经贡献了大量第三方组件,覆盖了官方组件未覆盖的 UI 需求。如果内置功能不够用,也可以基于 Streamlit 的组件协议开发自定义组件,用 React 或 Vue 构建前端部分,再通过 Streamlit 的桥接层接入 Python 后端逻辑。

Streamlit 采用 Apache 2.0 开源协议,可以商用。对于需要快速搭建数据应用原型的团队,它省去了前后端分离开发的成本,是一个务实的选择。

che 2.0 开源协议,可以商用。对于需要快速搭建数据应用原型的团队,它省去了前后端分离开发的成本,是一个务实的选择。

更多推荐