streamlit常用方法

streamlit常用方法

在这里插入图片描述

一、前言

介绍一些常用的streamlit方法,后续会不断补充。
streamlit版本:1.37.1

1.1 stream启动指令

streamlit run your_app.py

二、基本框架

2.1 标题

import streamlit as st
 
st.title("标题")
st.header("较小标题")
st.subheader("小标题")

2.2 文本

markdown语法和普通文本输入

import streamlit as st

st.markdown('''
# streamlit
**streamlit**
''')

st.text(
'''
streamlit
'''
)

2.3 打印

st.write():Streamlit中用于在应用程序中展示文本和数据的通用函数。可以接受多种类型的参数,包括字符串、数字、DataFrame、图表等。

import streamlit as st
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
 
 

 
# 列表
st.write([6, 3])
 
# 字典
st.write({"key": "value"})
 
# 数据框(DataFrame)
df = pd.DataFrame({"Column 1": [6, 3], "Column 2": ["A", "B"]})
st.write(df)
 
#多参数用法
st.write( [6, 3], {"key": "value"})
 

在这里插入图片描述

2.4 json

import streamlit as st

st.json({
                "type": "text",
                "content": "数据提取么?为什么不用正则啊,你用正则不就全解决了么?",
                "score": 0.6054257750511169,
                "index": 1})

在这里插入图片描述

2.5 聊天框

st.chat_input():可以创建一个聊天框,自带发送按钮

prompt = st.chat_input("快输入你的内容")

在这里插入图片描述

2.6 创建对话头像

st.chat_message(“user”):创建两个头像。
“user”:固定参数,表示用户发送的消息。
“assistant”:表示ai助手,高版本只能用assistant,低版本可以用ai
高版本还有icon参数,可以自定义图标,我的版本不支持。

user_message = st.chat_message("user")
# ai_message = st.chat_message("ai")
ai_message = st.chat_message("assistant")

在这里插入图片描述

2.7 按钮

st.button():是Streamlit中用于创建按钮的函数。

import streamlit as st

if st.button('点我'):
    st.write('今天是个好日子!')

2.8 单选框和复选框

单选

label(str):单选框文本,显示在按钮组上方,介绍单选框用途。
options(list,tuple,dict,orNone):可供选择选项的列表、元组或字典。
index(int):单选按钮组的初始选择索引,默认为0。即默认选中第一个选项。
format_func(function or None):是一个可选的函数,它接收每个选项的值作为输入,并返回特定格式作为该选项的显示文本,这里是str。
help(str or None):为单选按钮组提供帮助文本,将在用户悬停在组件上时显示。

import streamlit as st

select = st.radio(
    label = '请输入您的选择',
    options = ('苹果', '铅笔', '塑料袋'),
    index = 2,
    format_func = str,
    help = '苹果可以吃'
    )
复选

除此之外,还有复选框:

st.checkbox

2.9 下拉框

参数和单选框一样

import streamlit as st

select = st.selectbox(
    label = '请输入您的选择',
    options = ('苹果', '铅笔', '塑料袋'),
    index = 2,
    format_func = str,
    help = '苹果可以吃'
    )

在这里插入图片描述

2.10 多选框

选择过的选项会消失,且返回值为字典

import streamlit as st

options = st.multiselect(
    label = '请问您喜欢吃什么水果',
    options = ('梨', '苹果',  '葡萄'),
    default = None,
    format_func = str,
    help = '选择您喜欢吃的水果'
    )

st.write('您喜欢吃的是', options)

在这里插入图片描述

2.11 滑动块、数字、文本输入框

滑动块
import streamlit as st

heigeht = st.slider(label='请输入您的身高', 
                min_value=0, 
                max_value=300, 
                value=0, 
                step=1, 
                help="请输入您的身高,单位:cm"
)

st.write('您的身高是', heigeht, 'cm')

在这里插入图片描述

数字

st.number_input():用于创建数字输入框,允许用户输入数字。

import streamlit as st

age = st.number_input(label = '请输入您的年龄', 
                     min_value=0, 
                     max_value=100, 
                     value=0, 
                     step=1, 
                     help='请输入您的年龄'
                    )
st.write('您的年龄是', age)
单行文本

streamlit.text_input函数用于创建文本输入框,允许用户输入文本信息。

import streamlit as st

name = st.text_input('请输入用户名',  max_chars=100, help='最大长度为100字符')

# 根据用户输入进行操作
st.write('您的用户名是', name)
多行文本

st.text_area():用于创建文本区域,允许用户输入多行文本信息。

import streamlit as st

text = st.text_area(label = '请输入文本', 
                    value='请输入...', 
                    height=5, 
                    max_chars=200, 
                    help='最大长度限制为200')

st.write('您的输入是', text)

2.12 日期输入框

value(datetime.dateorNone):可选。日期输入框的初始值,应为datetime.date类型。如果未提供,则默认为None。
min_value(datetime.date or None):可选。日期输入框的最小值,用户不能选择早于该日期的日期。如果未提供,则不设置最小值限制。
max_value(datetime.date or None):可选。日期输入框的最大值,用户不能选择晚于该日期的日期。如果未提供,则不设置最大值限制。

import streamlit as st
import datetime

birthday = st.date_input(label = '请输入您的出生年月', 
                     value=None, 
                     min_value=None, 
                     max_value=datetime.date.today(), 
                     help='请输入您的出生年月')

st.write('您的生日是:', birthday)

在这里插入图片描述

三、记忆函数(缓存修饰器)修改中

3.1 @st.cache_data

3.1.1 @st.cache_data 核心功能

用于缓存数据计算结果(如 DataFrame、数组、列表等),避免重复计算,提升应用性能。
适用场景

  1. 数据读取(如从 CSV / 数据库加载数据)
  2. 数据预处理(如清洗、转换)
  3. 复杂计算(如机器学习模型训练)
3.1.2 参数详解
  1. ttl(生存时间)
    类型:int 或 None
    作用:指定缓存的过期时间(秒)。超过 ttl 后,再次调用函数会重新计算并更新缓存。
@st.cache_data(ttl=3600)  # 缓存1小时后过期
def load_data():
    return pd.read_csv("data.csv")
  1. max_entries(最大条目数)
    类型:int 或 None
    作用:限制缓存中存储的最大结果数量。超出时按 ** 先进先出(FIFO)** 规则清除旧条目。
@st.cache_data(max_entries=10)  # 最多保留10条缓存结果
def process_data(data):
    return data.apply(...)
  1. show_spinner(加载指示器)
    类型:bool
    作用:是否在函数计算时显示 Spinner(默认 True)。
@st.cache_data(show_spinner=False)  # 不显示加载提示
def heavy_computation():
    # 耗时操作
    return result
  1. persist(持久化缓存)
    类型:bool
    作用:
    True:将缓存数据写入磁盘(默认路径:.streamlit/cache),应用重启后缓存仍然有效。
    False:缓存仅存在于内存中,应用重启后清空。

  2. experimental_allow_widgets(实验性支持小部件)
    类型:bool
    作用:
    True:允许在被缓存的函数中使用 Streamlit 小部件(如 st.slider)。
    False(默认):禁止在缓存函数中使用小部件,否则会报错。

  3. hash_funcs(自定义哈希函数)
    类型:dict 或 None
    作用:对某些难以哈希的参数(如类实例、文件对象),自定义哈希逻辑。

from mymodule import CustomClass
def custom_hash(obj):
    return hash(obj.id)  # 根据对象ID生成哈希值

@st.cache_data(hash_funcs={CustomClass: custom_hash})
def process_custom_obj(obj):
    return obj.data

四、提示信息函数

  1. streamlit提供了多种函数用于显示不同类型的消息,以呈现不同级别的通知和反馈。
  2. st.error: 用于显示错误消息。通常用于向用户报告发生的错误或异常。
  3. st.warning: 用于显示警告消息。通常用于向用户提供潜在的问题或需要注意的情况。
  4. st.info: 用于显示一般信息消息。可以用于提供一般性的信息或指导。
  5. st.success: 用于显示成功消息。通常用于向用户报告任务或操作成功完成。
  6. st.exception: 用于显示异常消息。当发生异常时,可以使用此函数将异常信息呈现给用户。

这些函数提供了一种直观的方式来向用户传达不同类型的信息,并帮助改善用户体验。使用适当的消息类型能够更清晰地传达信息的重要性和紧急性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值