Python技术迷

一个傻瓜式构建可视化 web的 Python 神器 -- streamlit

要是你也像我一样,平时写点 Python 脚本、数据分析、模型预测的玩意儿,然后总有人来一句“能不能做个网页看看?”——那你一定体会过从 Flask、Django 一路踩坑的痛。配置、模板、路由、静态资源,哪一个不得折腾半天。 直到我遇见了 Streamlit —— 真的是那种“写 Python 就能跑网页”的神器。

一分钟跑起来一个 Web 应用

Streamlit 最大的特点就是:没有前端、没有路由、没有配置。 你只管写逻辑,它帮你搞定展示。

安装也很直接:

pip install streamlit

写个最简单的 demo:

import streamlit as st

st.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 LinearRegression

st.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 st

a = 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 全部免费领