学习streamlit-2

news2025/8/6 0:13:38

首先视频快速预览下今天的学习内容:

Streamlit Shorts: How to make a button

今天继续学习streamlit,首先激活之前建立的虚拟环境:

❯ conda activate streamlit-env
(streamlit-env)
~ via 🐍 v3.9.16 via 🅒 streamlit-env
❯ 

进入到虚拟环境目录下,新建exercises文件夹,新建day1.py文件:

❯ fd streamlit-env
anaconda3\envs\streamlit-env

❯ fd streamlit-env | cd

❯ mkdir exercises

❯ cd exercises

❯ code day1.py

day1.py文件中写下第一行代码:

import streamlit as st

st.write('Hello world!')

保存,然后在终端中运行:

❯ streamlit run .\day1.py

  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://192.168.20.81:8501

自动打开系统默认浏览器窗口并显示 “Hello world!”

恭喜,第一个程序运行起来了!

我们现在给页面加个按钮,实现点按钮后变换显示内容:

# 在day1.py文件中继续编辑,并且不需要关闭之前运行的程序
import streamlit as st

st.write('Hello world!')

st.header('st.button')

if st.button('Say hello'):
    st.write('Why hello there')
else:
    st.write('Goodbye')

刷新下网页,会出现按钮:

上面演示了st.button最简单的用法,点击了解更多。

st.button(label, key=None, help=None, on_click=None, args=None, kwargs=None, *, type="secondary", disabled=False, use_container_width=False)

Parameters

  • label(str)

    按钮标签,通常用字符串,支持markdown语法的加粗、斜体、删除线,还支持emojis。

  • key(str or int)

    可选的字符串或整型作为按钮部件的唯一键值,如果留空,则自动根据按键内容生成。

  • help(str)

    可选的当鼠标悬浮在按键上时显示的提示信息。

  • on_click(callable)

    可选的点击按钮的回调。

  • args(tuple)

    可选的传给回调函数的元组参数。

  • kwargs(dict)

    可选的传给回调函数的字典参数。

  • type(“secondary” or “primary”)

    可选的指定按钮类型的参数,默认为"secondary",为普通类型;"primary"则会着重强调。

  • disable(bool)

    可选的布尔类型参数,默认为False,设为True则会禁用按钮。

  • use_container_width(bool)

    可选的布尔类型参数,控制按钮是否匹配父容器宽度。

Returns

  • (bool)

    程序在最后一次运行时按钮被点击则返回True,否则为False

Demo

代码如下:

import streamlit as st
import numpy as np
import time


st.write('Hello world!')

st.header('st.button')

if st.button('Say hello'):
    st.write('Why hello there')
else:
    st.write('Goodbye')

st.button('**你好**')

st.button('*你好*')

st.button('~哈哈~')

st.button('❤')

st.button('❤', key='1', help='This is a heart emoji button')

def plotting_demo():
    progress_bar = st.sidebar.progress(0)
    status_text = st.sidebar.empty()
    last_rows = np.random.randn(1, 1)
    chart = st.line_chart(last_rows)

    for i in range(1, 101):
        new_rows = last_rows[-1, :] + np.random.randn(5, 1).cumsum(axis=0)
        status_text.text("%i%% Complete" % i)
        chart.add_rows(new_rows)
        progress_bar.progress(i)
        last_rows = new_rows
        time.sleep(0.05)

    progress_bar.empty()

    # Streamlit widgets automatically run the script from top to bottom. Since
    # this button is not connected to any other logic, it just causes a plain
    # rerun.
    st.button("Re-run")

plotting_demo()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/394255.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

3DCAT+一汽奥迪:共建线上个性化订车实时云渲染方案

近年来,随着5G网络和云计算技术的不断发展,交互式3D实时云看车正在成为一种新的看车方式。与传统的到4S店实地考察不同,消费者可以足不出户,通过网络与终端设备即可实现全方位展示、自选汽车配色、模拟效果、快捷选车并进行个性化…

面向对象设计模式:创建型模式之建造者模式

一、引入 Build:建造和构建具有建筑结构的大型物体 建楼:打牢地基、搭建框架、然后自下而上一层层盖起来。构建物体:通常需要先建造组成这个物体的各个部分,然后分阶段把它们组装起来 二、建造者模式 2.1 Intent 意图 Separate…

不考虑分配与合并情况下,GO实现GCMarkSweep(标记清除算法)

观前提醒 熟悉涉及到GC的最基本概念到底什么意思(《垃圾回收的算法与实现》)我用go实现(因为其他的都忘了,(╬◣д◢)ムキー!!) 源码地址(你的点赞,是我开源的…

基于鲸鱼算法优化SVM的发电功率回归预测,eemd-woa-svm

目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 鲸鱼算法的原理及步骤 SVM应用实例,基于eemd分解+鲸鱼算法改进SVM的回归分析 代码 结果分析 展望 支持向量机SVM的详细原理 SVM的定义 支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在…

Linux中将多块新硬盘合并成一个,挂载到/mysqldata目录下

需求: 将两块空硬盘合并为“一块”,挂载到指定目录(/data)下,达到在一个目录使用2块硬盘所有空间的效果。 使用 fdisk -l 命令查看当前系统中的硬盘,如下图: 系统中存在两块未分配的硬盘&#…

< Linux > 进程信号

目录 1、信号入门 生活角度的信号 技术应用角度的信号 前台进程 && 后台进程 信号概念 用kill -l命令察看系统定义的信号列表 信号处理的方式 2、信号产生前 用户层产生信号的方式 3、产生信号 3.1、通过终端按键产生信号 3.2、核心转储core dump 3.3、调用系统函数…

目前全网最全Linux学习笔记

操作系统 用户和计算机的接口,同时也是计算机硬件和其他软件的接口; 用户程序是运行的操作系统之上; 功能: 管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其他应用软…

6.4 深度负反馈放大电路放大倍数的分析

实用的放大电路中多引入深度负反馈,因此分析负反馈放大电路的重点是从电路中分离出反馈网络,并求出反馈系数 F˙\pmb{\dot F}F˙。 一、深度负反馈的实质 在负反馈放大电路的一般表达式中,若 ∣1A˙F˙∣>>1|1\dot A\dot F|>>1…

微服务之 CAP原则

文章目录微服务CAP原则AC 可用性 一致性CP 一致性 分区容错性AP 可用性 分区容错性提示:以下是本篇文章正文内容,SpringCloud系列学习将会持续更新 微服务CAP原则 经过前面的学习,我们对 SpringCloud Netflix 以及 SpringCloud 官方整个生…

Windows 上 执行docker pull命令 提示:The system cannot find the file specified.

错误提示error during connect: This error may indicate that the docker daemon is not running.: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/version": open //./pipe/docker_engine: The system cannot find the file specified.解决办法在cmd 窗口中执…

视觉SLAM十四讲ch7-1视觉里程计笔记

视觉SLAM十四讲ch7-1 视觉里程计笔记本讲目标从本讲开始,开始介绍SLAM系统的重要算法特征点法ORB特征BRIEF实践特征提取与匹配2D-2D:对极几何八点法求E八点法的讨论从单应矩阵恢复R,t小结三角化![在这里插入图片描述](https://img-blog.csdni…

网络割接概述

网络割接概述割接背景企业网络的变化割接概述割接难点割接的操作流程情景模拟及解决方案常见的割接场景割接背景 随着企业业务的不断发展,企业网络为了适应业务的需求不断的改造和优化。无论是硬件的扩容、软件的升级、配置的变更,凡是影响现网运行业务…

转速/线速度/角速度计算FC

工业应用中很多设备控制离不开转速、线速度的计算,这篇博客给大家汇总整理。张力控制的开环闭环方法中也离不开转速和线速度的计算,详细内容请参看下面的文章链接: PLC张力控制(开环闭环算法分析)_plc的收卷张力控制系统_RXXW_Dor的博客-CSDN博客里工业控制张力控制无处不…

十四届蓝桥选拔赛Scratch-2023.01.15 试题解析

十四届蓝桥选拔赛Scratch-2023.01.15 试题解析 单选题: 1. 运行以下程序,当角色被点击时会出现什么效果?( C ) *选择题严禁使用程序验证,选择题不答和答错不扣分 A. 小猫说:“你好&#xff01…

前端脚手架搭建(part4)动态插入

例如控制模板的name、选择使用的插件,动态插入之前vue模板是有选择是否使用pinia、unocss,通过用户的选择,在项目中动态配置插件需要用到ejs读取模板,然后动态修改npm install ejs在libs/utils/index.js添加ejs模板的操作函数impo…

IOS - 抓包通杀篇

IOS中大多数情况,开发者都会使用OC提供的api函数,CFNetworkCopySystemProxySettings来进行代理检测; CFNetworkCopySystemProxySettings 检测函数直接会检测这些ip和端口等: 采用直接附加页面进程: frida -UF -l 通…

04 | 在OAuth 2.0中,如何使用JWT结构化令牌? 笔记

04 | 在OAuth 2.0中,如何使用JWT结构化令牌? JWT 结构化令牌 JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为 JSON 对象在各方之间安全地…

28个案例问题分析---10---对生产环境的敬畏--生产环境

一:背景介绍 1:上午9:23,老师没有进行上课,但是却又很多的在线人员,并且在线人员的时间也不正确。 2:开发人员及时练习用户,查看用户上课情况。 3:10点整,询问项目组长发…

BFD配置实验

BFD配置实验拓扑图静态路由联动BFDOSPF联动BFD拓扑图 其中地址各自配置自己的loopback接口,然后接口地址按照AB.1.1.X进行配置。 静态路由联动BFD AR1: [Huawei]bfd [Huawei]bfd 1 bind peer-ip 12.1.1.2 source-ip 12.1.1.1 auto [Huawei]ip route-st…

【强化学习】一文读懂,on-policy和off-policy

一文读懂,on-policy和off-policy 我来谈一下我的理解,不一定对。本文以 Sarsa 和 Q-learning 为例 Sarsa:on-policyQ-learning:off-policy 1. 什么是on-policy和off-policy? 我们有两个策略:行动策略和目标策略 on-policy: 行…