Streamlit:用 Python 快速构建数据应用

Streamlit 是一款开源的 Python 工具,已经斩获了 44,806 个 Star:

正文顶部截图

README区域截图

Streamlit 的定位是"用最快速度构建和分享数据应用"。它的核心思路很直接:数据科学家和工程师用 Python 写好分析脚本后,不需要再学习前端技术栈,就能把它变成可交互的 Web 应用。

全部用 Python 编写,开源且免费。应用写好后,可以通过 Community Cloud 平台直接部署、管理和分享。

安装

Streamlit 的安装过程很简单,一条 pip 命令即可:

pip install streamlit
streamlit hello

也支持在 Windows、Mac 和 Linux 的虚拟环境中安装。

一个简单的例子

Streamlit 的 API 设计得很精简,下面这几行代码就能跑出一个带滑块的交互页面:

import streamlit as st

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

滑动滑块,页面会实时更新计算结果。不需要写 HTML、CSS 或 JavaScript,所有交互逻辑都在 Python 里完成。

更复杂的场景

Streamlit 的 API 虽然简单,但能支撑相当丰富的应用形态。官方提供了一个自动驾驶数据集浏览的演示项目,可以查看 Udacity 自动驾驶数据集,并用 YOLO 模型实时运行目标检测推理。

整个演示项目的 Python 代码不到 300 行,其中只有 23 个 Streamlit 调用,就覆盖了图表展示、图像渲染、侧边栏控件等所有主要功能模块。

核心组件

Streamlit 提供了丰富的内置组件,覆盖数据应用的常见需求:

  • 数据展示:支持 DataFrame、表格、JSON、图表等多种格式的直接渲染。调用方式很直接,比如 st.dataframe() 可以直接把 pandas DataFrame 渲染成带排序和搜索功能的交互表格
  • 交互控件:滑块、按钮、单选框、多选框、文本输入、文件上传等。这些控件会自动处理前端状态同步,开发者只需要关注业务逻辑
  • 媒体支持:图片、音频、视频的直接嵌入和显示,支持从本地路径或网络 URL 加载
  • 布局控制:侧边栏、列布局、展开折叠区域等页面结构组织方式,可以用几行代码实现多栏并排或复杂页面结构
  • 状态管理:缓存机制、会话状态、回调函数等交互逻辑支持。@st.cache_data 装饰器可以自动缓存计算结果,避免重复执行耗时操作

GitHub Badge

Streamlit 提供了官方的 GitHub Badge,可以嵌入到项目的 README 中,方便其他人直接访问和体验你的应用。

部署

写好的 Streamlit 应用可以通过 Community Cloud 免费部署。流程很直接:关联代码仓库,选择主文件,平台会自动构建和托管。部署完成后会生成一个公开链接,可以直接分享给其他人使用。也可以选择私有部署,仅限团队成员访问。

社区与文档

Streamlit 有活跃的社区讨论区,用户在上面分享应用、提问和互相解答。官方文档覆盖了完整的 API 参考和入门教程,博客会定期发布新功能介绍和使用案例。

开源协议采用 Apache 2.0,完全免费可商用。对于需要快速把 Python 数据分析脚本变成可分享应用的场景,Streamlit 是一个值得考虑的选择。

2.0,完全免费可商用。对于需要快速把 Python 数据分析脚本变成可分享应用的场景,Streamlit 是一个值得考虑的选择。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐