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

Streamlit密码验证后隐藏输入框及提示,仅显示客户选择框

Streamlit密码验证后隐藏元素实现方案

核心思路是利用Streamlit的session_state持久化验证状态,根据状态控制元素的显示与隐藏。以下是具体实现代码:

import streamlit as st

# 初始化验证状态,首次运行时设为未通过
if "auth_success" not in st.session_state:
    st.session_state.auth_success = False

# 未验证通过时展示密码输入与验证模块
if not st.session_state.auth_success:
    password = st.text_input("请输入密码", type="password")
    if st.button("验证"):
        # 替换为你的实际密码验证逻辑
        if password == "your_target_password":
            st.session_state.auth_success = True
            # 立即触发页面重渲染,直接进入验证后状态
            st.rerun()
        else:
            st.error("密码错误,请重试")
else:
    # 验证通过后仅展示客户选择下拉框
    customer_list = ["客户A", "客户B", "客户C", "客户D"]
    selected_customer = st.selectbox("选择客户", customer_list)
    st.info(f"当前选中客户:{selected_customer}")

关键细节说明:

  • st.session_state.auth_success:用来留存验证状态,页面刷新或交互时不会丢失
  • st.rerun():密码验证通过后立即触发页面重渲染,跳过密码模块直接展示下拉框
  • 条件分支:通过if not st.session_state.auth_success:精准控制元素显示,验证通过后自动隐藏密码输入、验证按钮及错误提示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 00:52:06