用最少的代码,把 Python 脚本变成可视化 Web 应用
Streamlit 是一个让你可以用极少的代码,把 Python 脚本快速变成 Web 应用的开源框架,特别适合数据分析、可视化展示和内部小工具。
建议你在一个独立的虚拟环境中安装 Streamlit,避免不同项目的依赖互相影响。
# 查看 Python 版本
python --version
# 或
python3 --version# 使用 venv 创建虚拟环境
python -m venv venv
# Windows 激活
venv\Scripts\activate
# macOS / Linux 激活
source venv/bin/activate# 安装 streamlit
pip install streamlit
# 可选:常用数据分析库
pip install pandas numpy matplotlib plotly能输出版本号就说明安装成功:
python -m streamlit --versionpython3,则命令也对应改为 python3 -m venv venv、python3 -m streamlit --version。import streamlit as st
st.title("Hello, Streamlit!")
st.write("欢迎使用 Streamlit 构建你的第一个数据应用!")
name = st.text_input("请输入你的名字:", "同学")
if st.button("打招呼"):
st.success(f"你好,{name},祝你学习顺利!")streamlit run hello_streamlit.pyhttp://localhost:8501)。Streamlit 与传统 Web 框架最大的不同之一是:它不是“请求 -> 路由 -> 渲染模板”,而更像是“写脚本 -> 运行 -> 根据组件状态重新执行”。
st.session_state 做“记忆”(第5章讲)。session_state 后就能优雅解决。
下面这段代码基本涵盖了你做小工具最常用的一批组件。建议你复制到本地运行并逐行删改体验:
import streamlit as st
import pandas as pd
st.title("组件速览")
st.caption("把这段代码保存为 widgets_demo.py 然后运行:streamlit run widgets_demo.py")
st.header("文本输出")
st.write("st.write 可以输出字符串、数字、字典、表格等")
st.markdown("**Markdown** 也支持,比如:`code`、列表、链接")
st.header("输入组件")
name = st.text_input("姓名", "同学")
age = st.slider("年龄", 0, 100, 18)
level = st.selectbox("熟练度", ["入门", "进阶", "熟练"])
st.header("按钮与提示")
if st.button("生成个人卡片"):
st.success(f"你好 {name},年龄 {age},当前水平:{level}")
st.header("表格")
df = pd.DataFrame({"字段": ["name", "age", "level"], "值": [name, age, level]})
st.dataframe(df)要求:
st.success 或 st.info 美化输出要求: