Skip to content

建立 2026-09-14 更新 2026-09-14

表單與側欄

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("地區", ["北", "中", "南"])

也可以:

with st.sidebar:
    st.header("篩選")
    year = st.slider("年份", 2018, 2026, 2024)

完整版面(欄位、分頁、對話框)見 版面配置