[开发技巧] 快速掌握Streamlit: Python快速原型开发工具
[开发技巧] 快速掌握 Streamlit: python 快速原型开发工具
本文旨在快速上手 Python 的streamlit库,包括安装,输入数据,绘制图表,基础控件,进度条,免费部署。
Streamlit,更快地帮你建构和分享数据应用! streamlit 官网如是说, 在数据处理,数据展示,机器学习原型,AI 原型展示等方面十分契合。当然咱们用来做一些简单的 web 应用也是完全没问题的,上手难度低,部署简单,且官方平台提供了免费的可公网访问 Streamlit Sharing 托管.
快速介绍一些 Streamlit 的特点
- 和数据科学工具有很高集成度. Matplotlib, Pandas, Ploty, Altair 等库,都很好地在 streamlit 中做了适配, 可以在应用中直接展示这些库生成的图表和数据,在很多相关学术论文中都可以看见 streamlit 的影子。
- 易于部署. 可以通过很简单的命令就完成应用的部署,在任何地方都可以运行,本地,云服务器,也可以直接托管在官方的 Streamlit Sharing.
- 实时更新. Streamlit 应用会实时更新,每当数据变化,应用也会自动更新。
0x00 安装
- 确认咱的 Python 版本在 3.8 以上
- 使用 pip 直接进行安装
pip install streamlit
OK, 安装就完毕了。 可以使用命令streamlit hello
嗖~ streamlit 自带的 HelloWorld Demo 就弹出来了,可以扒拉一下左边的 demo。
0x01 编码之前
- 在开始敲代码之前, 先来讲一个比较重要的点 -> 如何启动 streamlit app 脚本
不同于一般的 Python 脚本, 可以通过Python xxx.py的方式运行,streamlit 需要使用Python -m streamlit run xxx.py来运行。(streamlit run 之后跟的脚本,甚至可以是 github 仓库链接, 比如:streamlit run https://github.com/Algieba-dean/ZhuGeHorary/blob/master/ZhuGeHorary_APP.py)
- Streamlit 会实时监测修改, 代码的改动在保存时,会同步更新到部署的 App 上.
0x02 显示数据
st.write()
st.write(),如果不知道用什么,那就用它准没错. 即使有st.table(),st.dataframe()没有什么特别的需求
1 | import streamlit as st |
OK 现在咱学会了最简单的数据展示

0x03 输入控件
st.text_input
- 最简单的输入控件, 可以输入文本
1 | text = st.text_input("输入一些文字吧") |

OK,会这俩,就已经可以完成很大一部分任务了。
0x04 高级控件
st.number_input数字输入
1 | number = st.number_input("输入一个0-100间的数字", min_value=0, max_value=100, step=1) |

st.slider滑动块
1 | slider_number = st.slider(f"试着一口气滑到数字{number}", min_value=0, max_value=10000, value=[0, 500]) |

st.file_uploader文件上传
1 | uploaded_file = st.file_uploader("上传一个数据文件", type=['csv', 'txt']) |

0x05 进度条
st.progress进度条
1 | import time |

0x06 应用部署
- 将代码上传到 Github,并将其设为公共仓库
- 用 github 账户登录streamlit share
- 点击右上角的Create app
- 点击Deploy a public app from GitHub中的Deploy now
- 正确填入仓库信息, 脚本文件名, 自己配置一个可用的 url
- 点击Deploy
- 然后经过等待,你的 app 就上线啦
