翻译: Streamlit从入门到精通 基础控件 一
这个关于Streamlit的教程旨在帮助数据科学家或机器学习工程师,他们不是网络开发者,也不想花费数周时间学习使用这些框架来构建网络应用程序。

1. 什么是Streamlit?
Streamlit是一个免费且开源的框架,用于快速构建和共享美观的机器学习和数据科学Web应用程序。它是一个基于Python的库,专为机器学习工程师设计。数据科学家或机器学习工程师不是Web开发者,他们不想花几周时间学习这些框架来构建Web应用程序。相反,他们需要一个更容易学习和使用的工具,只要它能展示数据并收集建模所需的参数。Streamlit让你只需几行代码,就能创建一个令人惊艳的应用程序。
2. 为什么数据科学家应该使用Streamlit?
Streamlit的最大优点是,即使你不懂任何网页开发的基础知识,也可以轻松开始创建你的第一个网络应用程序。所以,如果你是一个热衷于数据科学,并希望能够轻松、快速、仅用几行代码就部署你的模型的人,Streamlit是一个不错的选择。
让一个应用程序成功的重要方面之一是通过有效直观的用户界面交付它。许多现代重数据应用面临快速构建有效用户界面的挑战,而无需采取复杂步骤。Streamlit是一个有前景的开源Python库,使开发者能够在短时间内构建吸引人的用户界面。
Streamlit尤其适合那些没有前端知识的人,将他们的代码转换为网络应用程序的最简单方式:
- 无需前端(html、js、css)经验或知识。
- 你不需要花费数天或数月来创建一个网络应用,你可以在几个小时甚至几分钟内创建一个非常漂亮的机器学习或数据科学应用。
- 它与大多数Python库兼容(例如pandas、matplotlib、seaborn、plotly、Keras、PyTorch、SymPy(latex))。
- 创建令人惊叹的网络应用需要的代码更少。
- 数据缓存简化并加速了计算管道。
3. 如何使用 Streamlit
安装 Streamlit,打开终端
pip install streamlit
测试安装是否成功:
streamlit hello


4. 如何运行 Streamlit 代码
streamlit run main.py

Streamlit命令易于编写和理解。通过一个简单的命令,你就可以展示文本、媒体、小部件、图表等。
5. 使用Streamlit显示文本
首先,我们将看到如何向您的Streamlit应用程序添加文本,以及添加文本的不同命令是什么。
st.write():这个函数用于向网络应用程序添加任何内容,从格式化字符串到matplotlib图表、Altair图表、plotly图形、数据框架、Keras模型等等。
import streamlit as stst.write("Hello ,let's learn how to build a streamlit app together")

st.title(): 这个函数允许你添加应用的标题。st.header(): 这个函数用于设置一个章节的标题。st.markdown(): 这个函数用于设置一个章节的Markdown。st.subheader(): 这个函数用于设置一个章节的副标题。st.caption(): 这个函数用于编写标题说明。st.code(): 这个函数用于设置代码。st.latex(): 这个函数用于显示格式化为LaTeX的数学表达式。

6. 使用Streamlit显示图片、视频或音频文件
你找不到像Streamlit这样简单的函数来显示图片、视频和音频文件。让我们看看如何用Streamlit展示媒体!
st.image():这个函数用于显示图片。st.audio():这个函数用于播放音频。st.video():这个函数用于播放视频。
st.image("kid.jpg")
st.audio("Audio.mp3")
st.video("video.mp4")

7. 输入widgets小部件
widgets是最重要的用户界面组件之一。Streamlit提供了多种小部件,让您可以直接将交互性融入您的应用程序中,包括按钮、滑块、文本输入等等。
- st.checkbox():这个函数返回一个布尔值。当复选框被选中时,它返回True值,否则返回False值。
- st.button():这个函数用于显示一个按钮小部件。
- st.radio():这个函数用于显示一个单选按钮小部件。
- st.selectbox():这个函数用于显示一个选择小部件。
- st.multiselect():这个函数用于显示一个多选小部件。
- st.select_slider():这个函数用于显示一个选择滑块小部件。
- st.slider():这个函数用于显示一个滑块小部件。
st.checkbox('yes')
st.button('Click')
st.radio('Pick your gender',['Male','Female'])
st.selectbox('Pick your gender',['Male','Female'])
st.multiselect('choose a planet',['Jupiter', 'Mars', 'neptune'])
st.select_slider('Pick a mark', ['Bad', 'Good', 'Excellent'])
st.slider('Pick a number', 0,50)

st.number_input(): 该函数用于显示一个数字输入小部件。st.text_input(): 该函数用于显示一个文本输入小部件。st.date_input(): 该函数用于显示一个日期输入小部件,用于选择日期。st.time_input(): 该函数用于显示一个时间输入小部件,用于选择时间。st.text_area(): 该函数用于显示一个多行文本的文本输入小部件。st.file_uploader(): 该函数用于显示一个文件上传小部件。st.color_picker(): 该函数用于显示一个颜色选择器小部件,用于选择颜色。
st.number_input('Pick a number', 0,10)
st.text_input('Email address')
st.date_input('Travelling date')
st.time_input('School time')
st.text_area('Description')
st.file_uploader('Upload a photo')
st.color_picker('Choose your favorite color')

8. 使用 Streamlit 显示进度和状态
接下来我们将看到如何在我们的应用中添加进度条和状态消息,例如错误和成功。
st.balloons():这个函数用于显示庆祝时的气球。st.progress():这个函数用于显示进度条。st.spinner():这个函数用于在执行过程中显示临时等待消息。
st.balloons()
st.progress(10)
with st.spinner('Wait for it...'): time.sleep(10)

st.success(): 此函数用于显示成功消息。st.error(): 此函数用于显示错误消息。st.warning(): 此函数用于显示警告消息。st.info(): 此函数用于显示信息性消息。st.exception(): 此函数用于显示异常消息。
st.success("You did it !")
st.error("Error")
st.warning("This is a warning")
st.info("It's easy to build a streamlit app")
st.exception(RuntimeError("RuntimeError exception"))

9. 侧边栏和容器 Sidebar and container
你也可以在页面上创建一个侧边栏或容器来组织你的应用。你的应用上的页面层级和布局可以对用户体验产生重大影响。通过组织你的内容,你可以让访问者理解并导航你的网站,这有助于他们找到他们正在寻找的内容,并增加他们将来返回的可能性。
9.1 侧边栏 Sidebar
将元素传递给st.sidebar()会使这个元素固定在左侧,让用户能够专注于你应用中的内容。
但是st.spinner()和st.echo()不支持与st.sidebar一起使用。
正如你所见,你可以在你的应用界面中创建一个侧边栏,并在里面放置元素,这将使你的应用更加有序,更易于理解。
st.sidebar.title("This is written inside the sidebar")
st.sidebar.button("Click me")
st.sidebar.radio("Pick your gender", ["Male", "Female"])

9.2 容器 container
st.container() 用于创建一个不可见的容器,在这里你可以放置元素以便创建一个有用的布局和层次结构。
container = st.container()
container.write("This is inside the container")
st.write("This is outside the container")

参考
- https://www.datacamp.com/tutorial/streamlit
- https://streamlit.io/
相关文章:
翻译: Streamlit从入门到精通 基础控件 一
这个关于Streamlit的教程旨在帮助数据科学家或机器学习工程师,他们不是网络开发者,也不想花费数周时间学习使用这些框架来构建网络应用程序。 1. 什么是Streamlit? Streamlit是一个免费且开源的框架,用于快速构建和共享美观的机器…...
【复现】网康科技-防火墙存在RCE漏洞_17
目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一: 四.修复建议: 五. 搜索语法: 六.免责声明 一.概述 网康下一代防火墙(NGFW)是一款可以全面应对应用层威胁的高性能防火墙。通过深入洞察网络流量中的用户、应用和内容,并…...
vue2、vue3里面去掉访问地址中路由‘#‘号--nginx配置
需求 我们这里分享一下关于Vue2和Vue3里面如何去掉浏览器路由里面#号的问题,以及nginx的配置。 去掉#号问题之前我们先讨论一下html中的hash模式和history模式。 html中的hash模式 HTML的hash模式指的是URL中的锚点部分(#后面的内容)被用…...
AR HUD全面「上新」
AR HUD赛道正在迎来新的时代。 上周,蔚来ET9正式发布亮相,新车定位为D级行政旗舰轿车,其中,在智能座舱交互层面,继理想L系列、长安深蓝S7之后,也首次取消仪表盘,取而代之的是业内首个全焦段AR H…...
Open3D AABB包围盒计算与使用(19)
Open3D AABB包围盒计算与使用(19) 一、算法速览二、算法实现1.代码2.结果少年听雨歌楼上。红烛昏罗帐。壮年听雨客舟中。江阔云低、断雁叫西风。 而今听雨僧庐下。鬓已星星也。悲欢离合总无情。一任阶前、点滴到天明。 一、算法速览 AABB包围盒就是将点云用一个各条边沿着坐…...
HDFS相关API操作
文章目录 API文档环境配置API操作准备工作创建文件夹文件上传文件下载文件删除文件的更名和移动获取文件详细信息 API文档 HDFS API官方文档:https://hadoop.apache.org/docs/r3.3.1/api/index.html 环境配置 将Hadoop的Jar包解压到非中文路径(例如D:…...
【AI视野·今日Robot 机器人论文速览 第七十二期】Mon, 8 Jan 2024
AI视野今日CS.Robotics 机器人学论文速览 Mon, 8 Jan 2024 Totally 13 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers Deep Reinforcement Learning for Local Path Following of an Autonomous Formula SAE Vehicle Authors Harvey Merton, Thoma…...
背包问题(补充中)
1.01背包 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 v[i],价值是 w[i]。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。 对于01背包问题,只有…...
十三、QPalette的简单使用(Qt5 GUI系列)
目录 一、设计需求 二、实现代码 三、代码解析 四、总结 一、设计需求 在实际应用中,经常需要改变某个控件的颜色外观,如背景、文字颜色等。Qt提供的调色板类 QPalette 专门用于管理对话框的外观显示。QPalette 类相当于对话框或是控件的调色板&…...
uniapp小程序超出一行显示...并展示更多按钮
注意:全部标签需要浮动在父盒子右边哦 循环获取所有需要展示数据标签的高度 this.goods this.goods.map(item > ({...item,showBtn: false}));this.$nextTick(() > {uni.createSelectorQuery().in(this).selectAll(".cart-info").boundingClientRect((data)…...
Qt打包程序
添加链接描述...
实验用PFA材质烧杯和高硼硅玻璃材质有什么区别?
高硼硅玻璃烧杯和特氟龙烧杯是两种常见的实验室容器,它们有不同的特点和应用。 高硼硅玻璃烧杯: 高硼硅玻璃烧杯是一种由硅酸盐和硼酸盐等原料制成的玻璃材质。它具有以下特点: 耐热性能较好,可以承受较高的温度变化。 抗化学侵…...
Raspbian安装摄像头
Raspbian安装摄像头 1. 源由2. 摄像头2.1 选型2.2 系统2.3 安装 3. 配置&命令3.1 命令3.2 配置 4. 测试4.1 拍照4.1.1 libcamera-jpeg4.1.2 libcamera-still 4.2 视频流4.2.1 RTSP流4.2.2 TCP流 5. 参考资料 1. 源由 家里闲置两块树莓派,打算做个WiFi视频流RTS…...
迅腾文化用网络集成化生态系统助力品牌之路的坚实后盾
商业竞争激烈,品牌不仅是企业的标志和形象,更是其核心价值和竞争力的体现。然而,企业在品牌推广过程中面临着诸多如缺乏有效的渠道管理、品牌形象模糊以及竞争激烈的市场环境等。这些阻碍着企业的品牌发展和市场占有率的提升。本文将通过企业…...
2401C++,C++编译时自动加密
编译时加密串 编译时加密串,运行时动态解密.此自定义加密算法可增加破解的难度,因为攻击者不仅需要逆向工程代码,还需要理解加密算法. 这样对代码的改动小,不影响代码可读性. 下面是使用boost.hana编译时加密串的示例: #include <string> #include <iostream> #i…...
vue 自定义网页图标 favicon.ico 和 网页标题
效果预览 1. 添加配置 vue.config.js 在 module.exports { 内添加 // 自定义网页图标pwa: {iconPaths: {favicon32: "./favicon.ico",favicon16: "./favicon.ico",appleTouchIcon: "./favicon.ico",maskIcon: "./favicon.ico",msTil…...
JOSEF约瑟端子排中间继电器 DZY-204 DC110V 导轨安装,板前接线
DZY系列端子排中间继电器 系列型号: DZY-101端子排中间继电器 DZY-104端子排中间继电器 DZY-105端子排中间继电器 DZY-301端子排中间继电器 DZY-106端子排中间继电器 DZY-401端子排中间继电器 DZY-204端子排中间继电器 一、 概述 DZY-204端子排中间继电器用于各种…...
VMware workstation搭建与安装AlmaLinux-9.2虚拟机
VMware workstation搭建与安装AlmaLinux-9.2虚拟机 适用于需要在VMware workstation平台安装AlmaLinux-9.2(最小化安装、无图形化界面)虚拟机。 1. 安装准备 1.1 安装平台 Windows 11 1.2. 软件信息 软件名称软件版本安装路径VMware-workstation 1…...
小程序基础学习(js混编)
在组件中使用外部js代码实现数据改变 先创建js文件 编写一些组件代码 编写外部js代码 在组件的js中引入外部js 在 app.json中添加路径规则 组件代码 <!--components/my-behavior/my-behavior.wxml--> <view><view>当前计数为{{count}}</view> <v…...
git秘钥过期 ERROR: Your SSH key has expired
文章目录 1、错误提示Your SSH key has expired2、登录Github确认3、重新设置秘钥 1、错误提示Your SSH key has expired 使用git命令时遇到Github 的 SSH Key秘钥过期,提示错误ERROR: Your SSH key has expired 2、登录Github确认 首先登录Github查看ÿ…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
C++ 设计模式 《小明的奶茶加料风波》
👨🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
