Streamlit 实战:快速构建数据驱动 Web 应用
引言
在数据驱动的时代,数据科学家和机器学习工程师常面临一个挑战:如何将复杂的分析成果直观地展示给受众。传统 Web 开发需要掌握 HTML、CSS 和 JavaScript,这对专注于算法的专业人员来说负担较重。
Streamlit 提供了一个完美的解决方案。作为一个开源 Python 框架,它允许你仅用熟悉的 Python 语言就能创建交互式 Web 应用,无需深厚的前端背景。通过 Streamlit,你可以将数据分析脚本转化为功能齐全、美观大方的 Web 应用,实现可视化、交互及模型部署,极大提升效率。
基础入门
安装与验证
如果你已安装 Python 和 pip,只需一条命令即可安装:
pip install streamlit
安装完成后,运行以下命令启动示例应用,确认环境无误:
streamlit hello
如果浏览器自动打开示例页面,说明安装成功。
第一个应用
新建一个 hello_streamlit.py 文件,写入以下代码:
import streamlit as st
# 设置页面标题
st.title('Hello, Streamlit!')
# 显示一段文本
st.write('This is my first Streamlit app.')
保存后,在命令行执行:
streamlit run hello_streamlit.py
Streamlit 会启动本地服务器并自动打开页面。最棒的是,每次修改代码保存后,页面会自动实时更新,无需重启服务,这种即时反馈机制让调试变得非常流畅。
运行机制简述
当你执行 streamlit run 时,Streamlit 读取 Python 脚本,解析其中的元素(如标题、图表),并在浏览器端生成对应的界面。它会持续监控脚本文件变化,一旦检测到修改就重新运行脚本。这意味着开发者只需关注 Python 逻辑,底层的 Web 通信和渲染都由 Streamlit 处理。
核心功能详解
文本与标题展示
除了基础的 st.title() 和 st.write(),还有更多样式可选:
- st.header():用于划分主要部分,字体略小于 title。
- st.subheader():进一步细分内容。
- st.markdown():支持 Markdown 语法,可轻松实现加粗、斜体、链接等复杂格式。
例如使用 Markdown 创建列表:
st.markdown('### 这是一个 Markdown 标题')
st.markdown('* 无序列表项')
st.markdown('1. 有序列表项')
数据可视化
Streamlit 原生支持 Matplotlib、Seaborn、Plotly 和 Altair,集成非常无缝。
Matplotlib 示例:
import streamlit st
matplotlib.pyplot plt
numpy np
x = np.linspace(, , )
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title()
st.pyplot(fig)


