streamlit 点击某个按钮执行另外一个页面
时间: 2024-09-29 09:06:56 浏览: 207
Streamlit是一个用于创建数据应用程序的Python库,它使得构建交互式的数据可视化变得非常简单。如果你想通过点击按钮切换到另一个页面,Streamlit提供了`Button`组件以及`st.experimental_getfixture_value`功能,可以配合`redirect.appendTo`来实现导航。
首先,在主`app.py`文件中,你可以添加一个`Button`组件:
```python
import streamlit as st
def show_next_page():
# 这里可以根据需要加载新的页面内容
page_2_data = load_new_page_content()
# 使用redirect方法跳转到新页面
import streamlit.components.v1 as components
components.html(page_2_data, height=800)
# 主界面部分
button = st.button('点击前往下一页')
if button:
show_next_page()
```
然后,你需要创建一个独立的`page_2.py`文件,并将其内容设置为HTML或Streamlit组件:
```python
# page_2.py
import streamlit as st
# 定义新页面的内容
new_page_content = """
<html>
<head>
<title>新页面</title>
</head>
<body>
<h1>这是新页面的内容</h1>
<!-- 更多内容... -->
</body>
</html>
"""
# 或者如果是更复杂的Streamlit应用
from your_other_streamlit_module import build_page_2
with st.spinner('加载中...'):
page_2_content = build_page_2()
st.markdown(page_2_content, unsafe_allow_html=True)
```
最后,记得在`app.py`中导入并调用新页面的部分:
```python
# app.py
import streamlit as st
import page_2 # 导入你的新页面模块
#...
if button:
import streamlit.components.v1 as components
components.html(page_2.new_page_content, height=800) # 调用新页面的HTML内容
```
阅读全文