欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > Streamlit随笔

Streamlit随笔

2025/6/14 0:18:21 来源:https://blog.csdn.net/2301_78106697/article/details/148567659  浏览:    关键词:Streamlit随笔

 基本组件

code(" 代码语句 ", language=' python ')        代码块,设置成python格式

metric(' 指标 ',100,300)

line_chart(data)        线图

bar_chart(data)        柱图

area_chart(data)        面积图

  • button:按钮
  • download_button:文件下载
  • file_uploader:文件上传
  • checkbox:复选框
  • radio:单选框
  • selectbox:下拉单选框
  • multiselect:下拉多选框
  • slider:滑动条
  • select_slider:选择条
  • text_input:文本输入框
  • text_area:文本展示框
  • number_input:数字输入框,支持加减按钮
  • date_input:日期选择框
  • time_input:时间选择框
  • color_picker:颜色选择器

多媒体组件

  • image:图片 st.image
  • audio:音频 st.audio
  • video:视频 st.video

状态进度条

  • progress:进度条,如游戏加载进度
  • spinner:等待提示
  • balloons:页面底部飘气球,表示祝贺
  • error:显示错误信息
  • warning:显示报警信息
  • info:显示常规信息
  • success:显示成功信息
  • exception:显示异常信息(代码错误栈)

页面,侧边栏,布局

  • st.sidebar:侧边栏
  • st.empty:空白占位
  • st.markdown:Markdown
  • st.columns:多列布局
  • st.expander:展开收起
  • st.beta_expander:展开收起
  • st.container:容器

多页面交互

文中耗时操作可使用缓存-------        @st.cache_resource或者 @st.cache_data

使用st.session_state.current_page

1.会话状态+条件渲染

import streamlit as st# 初始化会话状态
if 'current_page' not in st.session_state:st.session_state.current_page = 'home'# 侧边栏导航
with st.sidebar:st.title("导航")page = st.radio("选择页面",['home', 'data', 'charts', 'settings'])# 更新页面状态if page != st.session_state.current_page:st.session_state.current_page = pagest.experimental_rerun()  # 强制重新运行# 页面内容
if st.session_state.current_page == 'home':st.title("首页")st.write("欢迎使用本应用!")elif st.session_state.current_page == 'data':st.title("数据页面")st.write("这里显示数据。")# 数据处理代码...elif st.session_state.current_page == 'charts':st.title("图表页面")st.write("这里显示图表。")# 图表代码...elif st.session_state.current_page == 'settings':st.title("设置页面")st.write("这里是设置选项。")# 设置代码...

2.字典映射+函数封装

import streamlit as st# 定义页面函数
def home_page():st.title("首页")st.write("欢迎来到首页!")# 首页内容...def data_page():st.title("数据页面")st.write("这里显示数据。")# 数据内容...def charts_page():st.title("图表页面")st.write("这里显示图表。")# 图表内容...def settings_page():st.title("设置页面")st.write("这里是设置选项。")# 设置内容...# 页面映射
pages = {"首页": home_page,"数据": data_page,"图表": charts_page,"设置": settings_page
}# 侧边栏导航
with st.sidebar:st.title("导航")selected_page = st.radio("选择页面", list(pages.keys()))# 渲染选中的页面
pages[selected_page]()

3.使用pages页面目录结构自动生成侧边栏

通过pages/目录自动生成导航

app/
├── main.py        # 默认主页
└── pages/├── 1_home.py  # 首页├── 2_data.py  # 数据页面└── 3_about.py # 关于页面

streamlit根据文件名自动生成侧边栏导航

缓存

  1. st.cache_data(ttl=3600):用于缓存数据处理函数(如读取 CSV),缓存1小时
  2. st.cache_resource:用于缓存资源(如数据库连接、模型加载)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词