[英]Streamlit: Session_state() and Multiapp() - Navigation
[英]Streamlit real multipage app - Can session.state from select box state synced on all pages?
我正在构建一个小型 streamlit 应用程序,它应该通过页面显示各种主题的结果。 因此,在第 1 页上我们有篮球,在第 2 页上有排球等。选择框(下拉菜单)应该出现在每个页面上,允许用户切换国家/地区。 有没有办法让用户在即篮球页面上选择国家/地区以在排球页面上保存/应用/同步选择(当用户切换页面以自动应用选择的国家/地区时)?
我没有使用 select 框作为页面之间的方法,但有主页和模块。 体育页面位于单独的文件夹页面中。
Host_Country = st.selectbox('Select HomeTeamName name:',('France', 'Spain', 'Italy', 'England', 'Belgium', 'Portugal','Sweden'), key='country')
选择框有一个索引参数来表示将显示在框中的值。 我们可以用它来更新盒子。 我们将使用 session state 来更新所有页面中的索引。 st.session_state.country 已跟踪国家/地区值。
import streamlit as st
if 'index' not in st.session_state:
st.session_state.index = 0
if 'countries' not in st.session_state:
st.session_state.countries = ('France', 'Spain', 'Italy',
'England', 'Belgium', 'Portugal','Sweden')
st.header('Main')
st.write('Countries')
st.dataframe(st.session_state.countries)
页面/baskeball.py
import streamlit as st
st.header('Basketball')
Host_Country = st.selectbox(
label='Select HomeTeamName name:',
options=st.session_state.countries,
index=st.session_state.index,
key='country')
# Update the index. It is used in the selectbox.
st.session_state.index = st.session_state.countries.index(st.session_state.country)
st.write(f'value of country: {st.session_state.country}')
页面/volleyball.py
import streamlit as st
st.header('Volleyball')
Host_Country = st.selectbox(
label='Select HomeTeamName name:',
options=st.session_state.countries,
index=st.session_state.index,
key='country')
# Update the index. It is used in the selectbox.
st.session_state.index = st.session_state.countries.index(st.session_state.country)
st.write(f'value of country: {st.session_state.country}')
Select 西班牙篮球队。
Go 到排球页面。
国家都一样!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.