
一種概要, 應用這樣的程序, 它是按照從上至下的順序來運行的, 腳本呢, 每次只要用戶去打開針對您那個應用程序的瀏覽器選項卡的時候, 這個腳本就得進行再次執(zhí)行, 當腳本開始執(zhí)行了, 就在瀏覽器里實時描繪出它的輸出, 而且該腳本利用緩存從而去避免重新計算那些耗費資源的函數(shù), 所以它的更新速度是相當快的, 每當用戶和小部件有交互動作的時候, 您的腳本就會再次執(zhí)行, 并且該小部件的輸出的值會在運行的階段被設置成新的值。應用程序當中能夠包含多個頁面, 而這些頁面則是在文件夾里那些單獨的文件中被定義為pages。運行, 有運行指令, 指令里又包含運行指令當中的1.1運行指令。# Runningpython -m streamlit run your_script.py# is equivalent to:streamlit run your_script.py1.2 重新運行每一次您萌生更新應用程序的想法之際, 務必要保存源文件。當您開展如此這般的操作之時, 會進行是否存在更改的檢測, 進而詢問您是不是要重新運行應用程序。去選取屏幕右上角的“始終重新運行”選項, 以此在每次源代碼出現(xiàn)更改的時候自動更新您的應用程序。是以在快速交互循環(huán)范疇內(nèi)開展工作。1.3 數(shù)據(jù)流每當屏幕之上有某些內(nèi)容需更新之際, 便會自上至下再度運行全部腳本。此情形可能于兩種狀況之下出現(xiàn):有一種東西叫做裝飾器, 它能夠讓從事開發(fā)的人員, 在應用程序再次進行運行期間, 可將某些代價高昂的計算予以略過。2. 顯示2.1 數(shù)據(jù)框您能夠把幾乎任何東西傳送給st.write(), 諸如文本, 數(shù)據(jù), 圖形, 圖表等等。別憂慮, 這個問題會被解決, 且會按恰當?shù)姆绞秸宫F(xiàn)出來。importstreamlitasstimportpandasaspdimportnumpyasnp dataframepd.DataFrame( np.random.randn(10,20), columns(col%d%iforiinrange(20)))# 在不調(diào)用任何 Streamlit 方法的情況下寫入應用程序dataframe# 繪制交互式表格的方法st.dataframe(dataframe)# 使用 Pandas Styler 對象突出顯示交互式表中的某些元素st.dataframe(dataframe.style.highlight_max(axis0))# 靜態(tài)表生成的方法st.table(dataframe)2.2 折線圖使用 輕松地將折線圖添加到您的應用程序中 st.()importstreamlitasstimportnumpyasnpimportpandasaspd chart_datapd.DataFrame( np.random.randn(20,3), columns[a,b,c]) st.line_chart(chart_data)2.3 組件當數(shù)據(jù)或者對象被你調(diào)整到你期望處于的那種狀態(tài)的時候在這個時候你能夠去添加st.()、 st.()或者其他此類相同類型的小部件st.()。importstreamlitasstimportpandasaspdimportnumpyasnp xst.slider(x)# this is a widgetst.write(x,squared is, x*x) st.text_input(Your name, keyname) st.session_state.name# You can access the value at any point with:st.cache_datadefshow_chart_data(): chart_datapd.DataFrame( np.random.randn(20,3), columns[a,b,c]) chart_dataifst.checkbox(Show dataframe): show_chart_data() dfpd.DataFrame({first column: [1,2,3,4],second column: [10,20,30,40] }) optionst.selectbox(Which number do you like best?, df[first column])You selected: , option3. 布局3.1 邊欄設在左側(cè)面板側(cè)邊欄里的進行組織的小部件st.。被傳遞過來的每一個元素都st.是固定于左側(cè)的。假若是您想要把選擇框以及滑塊增添至側(cè)邊欄, 需要運用st....而并非st. st.:importstreamlitasst# Add a selectbox to the sidebar:add_selectboxst.sidebar.selectbox(How would you like to be contacted?, (Email,Home phone,Mobile phone) )# Add a slider to the sidebar:add_sliderst.sidebar.slider(Select a range of values,0.0,100.0, (25.0,75.0) )3.2 并排放置st.讓您可以并排放置小部件importstreamlitasst left_column, right_columnst.columns(2)# You can use a column just like st.sidebar:left_column.button(Press me!)# Or even better, call Streamlit functions inside a with block:withright_column: chosenst.radio(Sorting hat, (Gryffindor,Ravenclaw,Hufflepuff,Slytherin)) st.write(fYou are in{chosen}house!)3.3 進度importstreamlitasstimporttimeStarting a long computation...# Add a placeholderlatest_iterationst.empty() barst.progress(0)foriinrange(100):# Update the progress bar with each iteration.latest_iteration.text(fIteration{i1}) bar.progress(i1) time.sleep(0.1)...and now we\re done!4. 主題保存主題于配置部分當中。為應用程序定義主題之后, 它會在主題選擇器里顯示成“自定義主題”, 且進行默認應用, 并非是所包含的淺色以及深色主題。另外一種嘗試不同主題顏色的辦法是, 點開“保存時運行”選項, 對.toml文件進行編輯, 隨后留意在應用新主題顏色時, 應用程序重新運行的狀況。5. 緩存需要在其中緩存函數(shù)的話, 你得運用兩個裝飾器st.以及st.當中的一個去裝飾它, 每當對該函數(shù)進行調(diào)用的時候, 它都會去檢查兩件事情:輸入?yún)?shù)的值。函數(shù)內(nèi)部的代碼。它會去運行那個函數(shù), 然后把返回的值存儲到緩存里。在下次使用相同的參數(shù)以及代碼去調(diào)用這個函數(shù)的時候, 比如說當用戶與應用程序進行交互的時候, 將會完全不再執(zhí)行該函數(shù), 而是直接返回緩存當中的值。6. 網(wǎng)頁向現(xiàn)有應用程序添加更多頁面如下所示于存有主腳本的文件夾里, 去創(chuàng)建一個全新的pages文件夾。假定您的主腳本名稱是.py , 在該文件夾內(nèi)去增添新的.py文件pages , 以此給您的應用程序增添更多頁面, 如同平常那樣去運行run.py。就是如此這般那個.py腳本當下會對應于您所擁有的應用程序的主頁。您會在側(cè)邊欄頁面選擇器當中看到該文件夾里面的其他腳本pages。