山东大学项目实训-基于LLM的中文法律文书生成系统(十)- 前端(3) - Streamlit手册
Streamlit手册
快速开始
Streamlit支持的Python版本很多,所以只要有Python环境就行。
pip install streamlit
Hello world
'''
*** filename hello_streamlit.py
'''
import streamlit as st
st.title('Hello, Streamlit!')
st.write('这是我的第一个Streamlit应用。')
启动Streamlit应用:
streamlit run hello_streamlit.py
主要组件和功能
- Widgets:Streamlit提供了一系列内置的控件,如按钮、选择框、滑块等,使得用户可以与应用进行互动。这些控件可以非常简单地集成到您的应用中,并且Streamlit会自动管理用户输入和应用状态。
- Data Caching:Streamlit的数据缓存机制允许应用记住特定函数的结果。当您使用相同的参数多次调用该函数时,Streamlit可以从缓存中检索结果,而不是重新执行计算。这对于处理耗时的数据加载或处理操作尤其有用。
- Layouts:通过使用列(column)、侧边栏(sidebar)、展开器(expander)等布局组件,您可以创建结构化和美观的应用界面。Streamlit的布局系统灵活且易于使用,允许您轻松地定制应用的外观和感觉。
- Data Visualization:Streamlit直接支持多种数据可视化库,如Matplotlib、Plotly和Altair。这意味着您可以在Streamlit应用中无缝集成丰富的图表和视觉化元素,以动态展示数据。
交互,表单
- button:按钮
- download_button:文件下载
- file_uploader:文件上传
- checkbox:复选框
- radio:单选框
- selectbox:下拉单选框
- multiselect:下拉多选框
- slider:滑动条
- select_slider:选择条
- text_input:文本输入框
- text_area:文本展示框
- number_input:数字输入框,支持加减按钮
- date_input:日期选择框
- time_input:时间选择框
- color_picker:颜色选择器
import streamlit as st
@st.cache_data
def expensive_computation(a, b):
# 模拟一些很复杂的计算
return a * b
input_a = st.number_input("输入a", value=1)
input_b = st.number_input("输入b", value=1)
output = expensive_computation(input_a, input_b)
st.write("计算结果(:", output)
name = st.text_input("请输入您的名字", value="John Doe")
occupation = st.selectbox("请选择您的职业", ("学生", "教师", "工程师"))
age = st.slider("请选择您的年龄", min_value=0, max_value=100, value=30, step=1)
st.write(f"您好,{name}!您是一位{occupation},今年{age}岁。")
多媒体组件
- image:图片 st.image
- audio:音频 st.audio
- video:视频 st.video
页面,侧边栏,布局
- st.sidebar:侧边栏
- st.empty:空白占位
- st.markdown:Markdown
- st.columns:多列布局
- st.expander:展开收起
- st.beta_expander:展开收起
- st.container:容器
color = st.sidebar.color_picker('Pick A Color', '#00f900')
提示信息
streamlit提供了多种函数用于显示不同类型的消息,以呈现不同级别的通知和反馈。
st.error: 用于显示错误消息。通常用于向用户报告发生的错误或异常。
st.warning: 用于显示警告消息。通常用于向用户提供潜在的问题或需要注意的情况。
st.info: 用于显示一般信息消息。可以用于提供一般性的信息或指导。
st.success: 用于显示成功消息。通常用于向用户报告任务或操作成功完成。
st.exception: 用于显示异常消息。当发生异常时,可以使用此函数将异常信息呈现给用户。
这些函数提供了一种直观的方式来向用户传达不同类型的信息,并帮助改善用户体验。使用适当的消息类型能够更清晰地传达信息的重要性和紧急性。
import streamlit as st
st.error('错误信息')
st.warning('警告信息')
st.info('提示信息')
st.success('成功信息')
st.exception('异常信息')
显示执行状态
st.progress:用于显示一个进度条,可以设置最小值、最大值和当前值。它通常用于表示长时间运行的非阻塞任务的进度。
st.spinner:用于显示一个旋转的加载器,表示任务正在执行。它通常用于表示短时间运行的任务的执行状态。当任务完成时,加载器将自动消失。
import streamlit as st
import time
progress_bar = st.empty()
for i in range(10):
progress_bar.progress(i / 10, '进度')
time.sleep(0.5)
with st.spinner('加载中...'):
time.sleep(2)
缓存修饰器
@st.cache_data装饰器用于记忆函数的历史执行。当使用@st.cache装饰一个函数时,Streamlit 会将该函数的结果存储在一个缓存中,以便在后续调用中直接返回缓存的结果,而不是重新计算。这可以提高应用程序的性能,特别是在处理大量数据或计算密集型任务时。
参数如下:
func:要缓存的函数。如果提供了函数,则会对该函数的计算结果进行缓存。如果为None,则返回一个可以接受函数作为参数的装饰器。
ttl(int or None):必需。缓存的生存时间,以秒为单位。在缓存的生存时间内,对函数的调用将返回缓存的结果而不是重新计算。如果设置为None,缓存将永不过期。
max_entries(int or None):可选。缓存的最大条目数。当达到指定的最大条目数时,新的计算结果将替换最早的计算结果。
show_spinner(bool):可选。当进行缓存计算时,是否显示加载指示器。默认为True。
persist(bool):可选。是否将缓存数据持久化到磁盘。如果为True,数据将在应用程序重新启动时仍然存在。默认为False。
experimental_allow_widgets(bool):可选。是否允许在被缓存的函数中使用Streamlit小部件。默认为False。启用此选项时,可以在被缓存的函数中使用小部件。
hash_funcs(dictorNone):可选。用于指定自定义哈希函数的字典。键是参数名称,值是哈希函数。如果为None,将使用默认哈希函数。
多页面设置
步骤:
1 创建主的.py文件 (以home.py)为例子
2 和主文件 同目录级下创建 名为 pages或Pages的文件夹(文件夹的名字必须为这两个,换成其他文件名的话,它就不会识别当作子页面了)



浙公网安备 33010602011771号