You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Streamlit多页面应用:如何同步各页面selectbox的session.state状态?

Streamlit多页面应用同步国家选择的解决方案

要实现不同运动页面间国家选择的自动同步,核心是用Streamlit的session_state跨页面共享用户选择状态——这个状态在整个用户会话中全局可用,所有页面都能读取和修改。

直接按以下方式修改每个页面里的selectbox代码即可:

# 初始化默认值,避免首次打开页面时无选中项
if 'selected_country' not in st.session_state:
    st.session_state.selected_country = 'France'

# 渲染下拉选择框,绑定到session_state的统一键上
Host_Country = st.selectbox(
    'Select HomeTeamName name:',
    ('France', 'Spain', 'Italy', 'England', 'Belgium', 'Portugal','Sweden'),
    key='selected_country',
    index=('France', 'Spain', 'Italy', 'England', 'Belgium', 'Portugal','Sweden').index(st.session_state.selected_country)
)

关键说明:

  • 所有页面的selectbox必须使用同一个key(这里是selected_country),Streamlit会自动将选择值同步到session_state中
  • 初始化步骤是为了保证用户首次打开应用时,下拉框有默认选中的国家,不会出现空值
  • index参数用来指定当前选中的选项,确保切换页面时,下拉框自动选中之前保存的国家

内容的提问来源于stack exchange,提问作者Beginner in the house

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 18:01:18