一个傻瓜式构建可视化 web的 Python 神器 -- streamlit
要是你也像我一样,平时写点 Python 脚本、数据分析、模型预测的玩意儿,然后总有人来一句“能不能做个网页看看?”——那你一定体会过从 Flask、Django 一路踩坑的痛。配置、模板、路由、静态资源,哪一个不得折腾半天。 直到我遇见了 Streamlit —— 真的是那种“写 Python 就能跑网页”的神器。
一分钟跑起来一个 Web 应用
Streamlit 最大的特点就是:没有前端、没有路由、没有配置。 你只管写逻辑,它帮你搞定展示。
安装也很直接:
pip install streamlit
写个最简单的 demo:
import streamlit as stst.title("Hello Streamlit 👋")
st.write("这是我第一个 Streamlit 页面!")
name = st.text_input("你叫什么名字?")
if name:
st.success(f"你好,{name}!欢迎体验 Streamlit!")
然后运行:
streamlit run app.py
浏览器就能直接打开一个本地服务地址,像魔法一样,你的 Python 脚本变成了一个交互式网页。
真正的“傻瓜式”开发体验
Streamlit 的开发理念很简单:把每一行 Python 语句当作前端控件渲染指令。 比如:
st.text_input():输入框st.button():按钮st.slider():滑动条st.dataframe(df):表格展示st.pyplot(fig):展示 Matplotlib 图表
你甚至可以把机器学习的结果实时展示在网页上。
举个例子,比如我做了个简单的线性回归预测:
import streamlit as st
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegressionst.title("线性回归小演示")
# 模拟数据
X = np.linspace(0, 10, 50).reshape(-1, 1)
y = 3 * X.squeeze() + 5 + np.random.randn(50)
model = LinearRegression().fit(X, y)
pred_y = model.predict(X)
fig, ax = plt.subplots()
ax.scatter(X, y, label='真实数据')
ax.plot(X, pred_y, color='red', label='预测线')
ax.legend()
st.pyplot(fig)
这一段代码直接能跑出一个带交互的图形页面,不需要前端框架、不需要 HTML、也不需要 API 接口。
动态交互?一句话搞定
Streamlit 内置了状态缓存和控件交互能力,比如你想动态改变参数:
import numpy as np
import matplotlib.pyplot as plt
import streamlit as sta = st.slider("选择斜率 a", 1, 10, 3)
b = st.slider("选择截距 b", 0, 10, 5)
X = np.linspace(0, 10, 100)
y = a * X + b
fig, ax = plt.subplots()
ax.plot(X, y)
st.pyplot(fig)
用户拖动滑块,图表实时变化。所有逻辑都在一份 Python 文件里完成,前端和后端完全融合。
想部署上线?也只要一行命令
Streamlit 官方提供了 Streamlit Cloud 平台,直接连接 GitHub 仓库,就能把项目部署成公网访问的网址。 当然你也可以在本地或云服务器上跑:
streamlit run app.py --server.port 8080 --server.address 0.0.0.0
甚至支持 Docker 容器化,非常方便团队协作和快速展示。
说实话,Streamlit 不是为了取代 Flask 或 Django 的,它更像是一个为数据科学家准备的前端捷径。 你要做的是展示数据、画图、调参、演示模型效果,而不是搭建完整的业务系统。 在这个范围里,它简直就是“平民级 Web 构建神器”。
简单一句话:
Streamlit 把 Python 的每一行 print,变成了网页上的一行展示。
如果你:
想快速搭一个数据可视化面板; 想做个机器学习模型的在线演示; 想在 10 分钟内让老板看到结果;
那就别犹豫了, 打开终端输入:
pip install streamlit
再加上一行:
streamlit run app.py
然后……你就会笑出来。
-END-
我为大家打造了一份RPA教程,完全免费:songshuhezi.com/rpa.html
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB,点击下方公众号回复关键字 python 全部免费领