本文旨在快速上手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進度條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鏈接