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

如何在Streamlit中点击按钮替换原有显示数值

Streamlit 按钮点击替换显示数值解决方案

要实现点击按钮替换原有数值而非新增显示,核心是利用st.session_state存储当前要展示的数值,通过按钮点击更新状态后统一渲染该值。

方案一:自动重运行刷新(推荐)

import streamlit as st

# 初始化会话状态,默认显示1
if 'display_num' not in st.session_state:
    st.session_state.display_num = 1

# 按钮点击逻辑:更新会话状态
if st.button("Perform calculation 2"):
    st.session_state.display_num = 2
if st.button("Perform calculation 3"):
    st.session_state.display_num = 3

# 统一显示当前数值
st.write(st.session_state.display_num)

方案二:手动触发重运行

如果需要立即刷新显示,可添加手动重运行指令:

import streamlit as st

# 初始化会话状态
if 'display_num' not in st.session_state:
    st.session_state.display_num = 1

# 显示当前数值
st.write(st.session_state.display_num)

# 点击按钮更新状态并触发重运行
if st.button("Perform calculation 2"):
    st.session_state.display_num = 2
    st.experimental_rerun()
if st.button("Perform calculation 3"):
    st.session_state.display_num = 3
    st.experimental_rerun()

关键说明

  • st.session_state:用于在Streamlit脚本多次运行间持久化数据,避免每次按钮点击后数值重置。
  • 按钮点击后Streamlit会自动重新运行脚本,因此方案一中无需手动触发重运行,更新后的状态值会直接被渲染。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 08:05:27