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
相关产品推荐
相关产品推荐

