本文旨在快速上手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()
没有什么特别的需求import streamlit as st import pandas as pd st.write("显示表格:") st.write(pd.DataFrame({ 'A列': [1, 2, 3, 4], 'B列': [101, 202, 303, 404] }))
OK现在咱学会了最简单的数据展示
0x03 输入控件
st.text_input
- 最简单的输入控件, 可以输入文本
text = st.text_input("输入一些文字吧") st.write(text)
OK,会这俩,就已经可以完成很大一部分任务了。
0x04 高级控件
st.number_input
数字输入number = st.number_input("输入一个0-100间的数字", min_value=0, max_value=100, step=1)
st.slider
滑动块slider_number = st.slider(f"试着一口气滑到数字{number}", min_value=0, max_value=10000, value=[0, 500])
st.file_uploader
文件上传uploaded_file = st.file_uploader("上传一个数据文件", type=['csv', 'txt'])
0x05 进度条
st.progress
进度条
```python
import time
st.write("计算模拟中……")
latest_iteration = st.empty()
bar = st.progress(0)
for i in range(100):
latest_iteration.text(f"迭代到{i+1}")
bar.progress(i + 1)
time.sleep(0.1)
st.write("模拟计算完毕!")
```
0x06 应用部署
- 将代码上传到Github,并将其设为公共仓库
- 用github账户登录streamlit share
- 点击右上角的Create app
- 点击Deploy a public app from GitHub中的Deploy now
- 正确填入仓库信息, 脚本文件名, 自己配置一个可用的url
- 点击Deploy
- 然后经过等待,你的app就上线啦
结束
欢迎在这里留下你的app链接