表單與側欄
Widget 預設一改就重跑。填一份有很多欄位的表單時,這會又慢又吵。st.form 把多個輸入包在一起,按送出才重跑一次。
表單
import streamlit as st
with st.form("profile"):
name = st.text_input("名字")
age = st.number_input("年齡", 0, 120, 18)
submitted = st.form_submit_button("送出")
if submitted:
st.write(f"{name},{age} 歲")
注意:表單裡面的 Widget 在按送出前不會觸發腳本重跑。st.form_submit_button 才是那個開關。
側欄
篩選條件放左邊,主畫面留給圖表,是儀表板的常見排法:
year = st.sidebar.slider("年份", 2018, 2026, 2024)
region = st.sidebar.multiselect("地區", ["北", "中", "南"])
也可以:
完整版面(欄位、分頁、對話框)見 版面配置。