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

Streamlit应用侧边栏导航需求:首页全显示,其他页仅回首页按钮

解决Streamlit侧边栏导航动态显示问题

要实现仅在「Home」页面显示全部导航按钮,其他页面仅显示「Back Home」按钮的需求,核心是利用Streamlit的st.session_state持久化页面状态,动态切换侧边栏的选项列表。以下是修改后的完整代码:

import streamlit as st

# 初始化页面状态,默认进入Home页面
if "page" not in st.session_state:
    st.session_state.page = "Home"

# 根据当前页面状态,动态生成侧边栏选项
if st.session_state.page == "Home":
    nav_options = ["Home", "Summary", "Twitter", "Facebook"]
else:
    nav_options = ["Back Home"]

# 渲染侧边栏单选按钮,并处理选择逻辑
selected = st.sidebar.radio("Navigation", nav_options)

# 更新页面状态
if selected == "Back Home":
    st.session_state.page = "Home"
else:
    st.session_state.page = selected

# 根据当前页面显示对应内容
if st.session_state.page == "Home":
    st.title("侧边栏显示全部导航按钮")
elif st.session_state.page == "Summary":
    st.title("侧边栏仅显示Back Home按钮")
elif st.session_state.page == "Twitter":
    st.title("侧边栏仅显示Back Home按钮")
elif st.session_state.page == "Facebook":
    st.title("侧边栏仅显示Back Home按钮")

关键逻辑说明:

  • 状态持久化:通过st.session_state保存当前页面,避免每次刷新后回到初始状态
  • 动态选项生成:根据当前页面判断侧边栏要显示的选项列表,Home页面显示全部选项,其他页面仅显示返回按钮
  • 选择事件处理:点击「Back Home」时将页面状态重置为Home,其他选项直接切换到对应页面

内容的提问来源于stack exchange,提问作者Dushu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 03:32:08