Streamlit Python综合指南

2025年3月7日 | 阅读6分钟

Streamlit 是一个 Python 库,它简化了创建 Web 应用程序的过程。它面向数据科学家、机器学习工程师和开发人员,能够快速轻松地创建交互式数据中心应用程序。无需深入了解 Web 开发或前端技术。Streamlit 因其极简的方法而广受欢迎。实时更新是其功能集的一部分。与 Python 的数据分析和可视化库集成良好。

在接下来的教程中,我们将学习 Python 中 Streamlit 库的基础知识。

那么,让我们开始吧。

Streamlit 库简介

Streamlit 旨在简化应用程序开发。它适用于数据科学工作,也适用于机器学习工作流程。Streamlit 为开发人员提供了一个框架。他们可以专注于逻辑和功能。

Streamlit 库的一些关键特性

以下是 Python Streamlit 库的一些关键特性:

  1. 交互式元素: Streamlit 可以轻松添加交互式控件。例如滑块、按钮和文件上传器。它们可以实现实时数据探索。
  2. 轻松可视化: 用户可以无缝地包含图表和图形。这些图表和图形来自 Matplotlib 和 Altair 等流行库。或者来自 Plotly。
  3. Pythonic 设计: 开发人员完全使用 Python 编写 Streamlit 应用程序。无需学习 HTML、CSS 或 JavaScript。
  4. 实时自动更新: 每当代码修改时,应用程序就会更新。这会自动发生。无需手动刷新。它极大地加快了原型开发的速度。

如何安装 Streamlit 库?

Streamlit 可以通过 Python 的包管理器轻松安装。这是通过 pip 完成的。它只需要最少的配置。Streamlit 是跨平台的。它可以在 WindowsmacOSLinux 上运行。安装时,您需要使用 pip install streamlit。安装完成后,使用 streamlit run <filename.py> 运行应用程序。它会在 Web 浏览器中打开应用程序。这提供了一个实时测试环境。

安装完成后,您可以使用以下命令运行 Streamlit 应用程序:

理解 Streamlit 库的核心概念

Streamlit 提供了基本函数来构建和显示应用程序中的元素。这些函数包括文本渲染、数据显示和用户交互元素。每个 Streamlit 应用程序都是一个线性脚本。这意味着每次用户与之交互时,它都会从上到下执行。脚本会完全重新运行。当用户与之交互时,这会简化开发。开发人员不必管理回调或复杂的事件处理。

控件和交互

Streamlit 在交互方面表现出色。该框架可以轻松处理交互式控件。这些可以是滑块、按钮或文本输入。控件是允许与应用程序进行动态交互的工具。用户输入是关键因素。它驱动应用程序行为的实时变化。随后是实时数据分析模拟和可视化。

1. 滑块: 一种组件,允许在定义的特定范围内选择一个数值。

2. 按钮: 它们充当入口点,例如,它们可以允许表单提交或启动计算。

3. 选择框: 下拉功能。在这里,用户可以从选项列表中进行选择。

4. 复选框: 这些使用户能够切换某些功能或选项。交互以无状态方式管理。脚本在每次用户操作时重新运行。但是,有状态管理功能。其中之一是 st.session_state,它允许数据在交互之间持久存在。

数据展示

Streamlit 提供了多种显示和与数据交互的方式。它与表格、数据帧一起使用。还支持自定义可视化格式。Streamlit 开箱即用地支持各种格式。它以直观的格式显示 Pandas DataFrame。NumPy 数组和其他表格数据也可以显示。该库为 LaTeX 和 markdown 提供了无缝支持。这使得丰富的文本格式成为可能。

DataFrame 显示

可视化集成

Streamlit 与流行的 Python 库无缝集成。这些 通常用于数据可视化。这包括 Matplotlib 和 Plotly 等库。通过使用 Streamlit,开发人员可以轻松地嵌入可视化。这些可视化来自以下库:

  1. Matplotlib: 在 Python 中广泛用于绘图和可视化数据。
  2. Altair: 声明式统计可视化库。简单地构建交互式图形。
  3. Plotly: 其受欢迎程度源于交互式图表。这些图表用于基于 Web 的数据呈现。
  4. Bokeh: 因构建适用于现代 Web 浏览器的交互式图表而备受推崇。

图表

Streamlit 支持许多图表库,如 Matplotlib、Plotly 和 Altair。下面是使用 Matplotlib 的示例。

Altair 图表

布局和组织

Streamlit 提供了简单的布局功能。这些功能使开发人员能够创建有组织的、结构良好的应用程序。布局选项允许开发人员将 UI 元素排列在列中。他们可以使用侧边栏来提升用户体验。

侧边栏是一个元素。它允许放置输入控件或导航等元素。组件放置在应用程序的侧面。这节省了主屏幕的空间。另一方面,列提供了数据表示。通过列可以增强数据。它们并排呈现信息。这使得显示更具视觉吸引力。也更容易理解。

侧边栏

您可以创建一个侧边栏用于导航或输入控件。

您可以创建多列布局以更好地呈现数据。

状态和缓存

构建交互式应用程序面临挑战。其中之一是处理状态。Streamlit 本质上是无状态的。这意味着每次交互,例如按下按钮或移动滑块,都会导致整个脚本重新运行。那么,我们为什么要使用 Streamlit 呢?因为它提供了机制。其中一个机制是 st.session_state。它允许值在交互之间持久存在。它有助于避免重新计算相同的数据。

缓存是另一项功能。Streamlit 使用缓存机制。目的是优化性能。缓存昂贵操作的结果是其功能。这些操作可能是从数据库加载数据。或者一项操作可能是运行重型机器学习模型。那么,它做了什么?通过缓存这些操作的结果,应用程序可以避免在每次用户交互时重新运行计算。

主题和自定义

Streamlit 允许主题化和自定义。开发人员能够个性化他们的应用程序。这包括自定义颜色方案、字体和其他元素。使用的是配置文件 (`config.toml`)。

Streamlit 提供自己的模板。其功能主要面向用户。然而,人们也可以生成自己的模板并使用暗色或亮色主题。这可以用来匹配其应用程序的特定要求。

文件处理

文件上传和处理在数据驱动的应用程序中很常见。Streamlit 允许用户上传文件。这是使用文件上传器控件完成的。可以对这些文件进行服务器端处理。开发人员可以控制文件格式和类型。

部署

当您对应用程序满意后,就可以部署它了。Streamlit 提供了帮助。其云平台 Streamlit Cloud 非常有用。通过它,部署变得容易。您可以将应用程序推送到 GitHub。将存储库链接到 Streamlit Cloud。部署您的应用程序所需的工作量最少。

对于喜欢其他平台的人,Streamlit 也可以提供帮助。Streamlit 应用程序可以在 Heroku 等平台上部署。它们可以迁移到 AWSGoogle Cloud。可以使用常见的部署模式。Python Web 应用程序可以使用这些模式进行部署。

Streamlit Python 的一些用例

Streamlit 非常适合特定用途:

  1. 机器学习原型设计: Streamlit 非常适合为机器学习模型创建交互式界面。它们使非技术利益相关者能够与模型进行交互。并测试输出。
  2. 数据仪表板: Streamlit 可以构建实时仪表板。这些仪表板是交互式的。它们有助于可视化和分析数据。
  3. 探索性数据分析 (EDA): Streamlit 提供了一种有效的数据探索方法。它有助于可视化趋势。并获得洞察。使用 Streamlit 时无需外部工具。
  4. 自动化和监控: Streamlit 非常适合创建内部工具。这些工具可以自动化任务。它们可以跟踪指标或监控 KPI。在这些应用中尤其有用。

结论

Streamlit 在各种应用中展现了其多功能性。该程序将复杂的数据和机器学习模型转换为简单的 Web 应用程序。通过这样做,它普及了数据科学的访问。并为许多行业提供了宝贵的工具。如果您想创建仪表板、自动化任务或构建交互式可视化,Streamlit 是您的理想选择。它是一个直观高效的平台。它将帮助您实现目标。