教你用python的Streamlit库制作可视化网页应用

news2024/10/1 12:24:38

目录

        • 步骤1:安装 Streamlit
        • 步骤2:创建一个新的 Python 文件
        • 步骤3:导入必要的库
        • 步骤4:编写应用程序代码
        • 步骤5:运行应用程序
        • 常用组件

当涉及到编写交互式应用程序时,Streamlit 是一个非常流行和强大的 Python 库。它使得创建数据可视化和网页应用程序变得简单,无需太多的代码。

以下是一个简单的 Streamlit 教程,它将带你从头开始创建一个基本的交互式应用程序。

步骤1:安装 Streamlit

首先,确保你已经安装了 Python 和 pip。然后,通过以下命令安装 Streamlit:

pip install streamlit

步骤2:创建一个新的 Python 文件

创建一个新的 Python 文件,比如 app.py

步骤3:导入必要的库

app.py 文件的开头,导入所需的库:

import streamlit as st

步骤4:编写应用程序代码

app.py 文件中,你可以使用 Streamlit 的各种功能来创建你的应用程序。下面是一个简单的例子:

# 设置页面标题
st.title("我的第一个 Streamlit 应用")

# 添加文本
st.text("欢迎使用 Streamlit!")

# 添加一个输入框
name = st.text_input("请输入您的姓名", "匿名")

# 添加一个按钮
button = st.button("提交")

# 在按钮被点击时执行的操作
if button:
    st.text("你好," + name + "!欢迎使用 Streamlit!")

步骤5:运行应用程序

保存 app.py 文件并在命令行中运行以下命令:

streamlit run app.py

这将启动一个本地的 Web 服务器,并在浏览器中打开应用程序。你可以通过编辑代码并保存文件来实时更新应用程序。

运行结果:
在这里插入图片描述
这只是一个简单的示例,Streamlit 还提供了许多其他功能,如绘图、数据可视化、布局和部署选项。

常用组件

Streamlit 提供了许多常用的组件,可以帮助你创建交互式应用程序。以下是一些常用的组件和它们的使用方法:

  1. 标题和文本:
    • st.title('标题'):添加一个大标题。
    • st.header('标题'):添加一个较大的标题。
    • st.subheader('标题'):添加一个较小的标题。
    • st.text('文本'):添加一段文本。
  2. 输入组件:
    • st.button('按钮'):添加一个按钮。
    • st.checkbox('复选框', value=False):添加一个复选框。
    • st.radio('单选框', options, index=0):添加一个单选框。
    • st.selectbox('下拉框', options, index=0):添加一个下拉框。
    • st.multiselect('多选框', options, default=None):添加一个多选框。
    • st.slider('滑块', min_value, max_value, value=None, step=None):添加一个滑块。
    • st.text_input('文本输入框', value='', max_chars=None):添加一个文本输入框。
    • st.number_input('数字输入框', min_value=None, max_value=None, value=None, step=None):添加一个数字输入框。
    • st.text_area('多行文本输入框', value='', max_chars=None):添加一个多行文本输入框。
    • st.date_input('日期输入框', value=None, min_value=None, max_value=None):添加一个日期输入框。
    • st.time_input('时间输入框', value=None):添加一个时间输入框。
    • st.file_uploader('文件上传', type=None, accept_multiple_files=False):添加一个文件上传组件。
  3. 输出组件:
    • st.write('文本或对象'):输出文本或对象。
    • st.markdown('Markdown 格式文本'):支持 Markdown 格式的文本输出。
    • st.latex('LaTeX 格式文本'):支持 LaTeX 格式的文本输出。
    • st.code('代码块'):显示代码块。
    • st.json('JSON 数据'):显示 JSON 数据。
    • st.dataframe(data):显示 Pandas 数据帧。
    • st.table(data):显示表格数据。
    • st.image(image, caption=None, use_column_width=False):显示图像。
    • st.audio(audio, format='audio/wav'):播放音频文件。
    • st.video(video, format='video/mp4'):播放视频文件。
  4. 绘图组件:
    • st.pyplot(fig):显示 Matplotlib 图形。
    • st.plotly_chart(fig):显示 Plotly 图形。
    • st.bokeh_chart(fig):显示 Bokeh 图形。
    • st.altair_chart(fig):显示 Altair 图形。
  5. 布局组件:
    • st.sidebar:创建一个侧边栏。
    • st.expander('标题'):创建一个可展开的区域。

这些是一些常用的 Streamlit 组件和它们的基本使用方法。

此外,Streamlit 还提供了一些高级功能和选项,例如:

  • 缓存数据:使用 st.cache 装饰器可以缓存函数的输出,以提高应用程序的性能。
  • 进度条:使用 st.progress 组件可以显示任务的进度。
  • 状态管理:使用 st.session_state 可以跨会话管理状态。
  • 异步更新:使用 st.experimental_asyncio 可以实现异步更新应用程序的功能。

除了上述组件和功能,Streamlit 社区也提供了许多第三方扩展和插件,可以进一步增强你的应用程序的功能和外观。

希望这些信息对你有帮助!Streamlit 是一个非常灵活和易于使用的工具,可以帮助你创建出强大的交互式应用程序。尽情探索和发挥创造力!


  • 📢博客主页:https://blog.csdn.net/qq233325332
  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢本文由 陌北v1 原创,首发于 CSDN博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

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

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

相关文章

图神经网络:处理点云

文章说明: 1)参考资料:PYG官方文档。超链。 2)博主水平不高,如有错误还望批评指正。 3)我在百度网盘上传了这篇文章的jupyter notebook和有关文献。超链。提取码8848。 文章目录 简单前置工作学习文献阅读Point的实现模型问题 简单前置工作学…

用项目管理思维来过5·20,真实太酷啦!

明天就是一年一度的520啦,阿道单身多年的同事刚京在四月成功使用SWOT分析模型相亲成功,牵手女嘉宾。二人眼看着就要迎来在一起后的第一个节日520,刚京却因为没有头绪而陷入了不知所措的焦虑。 团队成员齐上阵,用项目管理思维&…

使用 Apache Flink 开发实时 ETL

Apache Flink 是大数据领域又一新兴框架。它与 Spark 的不同之处在于,它是使用流式处理来模拟批量处理的,因此能够提供亚秒级的、符合 Exactly-once 语义的实时处理能力。Flink 的使用场景之一是构建实时的数据通道,在不同的存储之间搬运和转…

<组件封装:Vue + elementUi 通过excel文件实现 “ 批量导入 ” 表单数据,生成对应新增信息 >

Vue elementUi 通过excel文件实现 “ 批量导入 ” 表单数据,生成对应新增信息 👉 前言👉 一、封装组件对应API及绑定事件> Attributes> Event 👉 二、实现案例> HTML父组件模板> 子组件模板 👉 三、效果演…

线程相关基础知识

一、相关概念 1.1 cpu 中央处理器(central processing unit, 简称cpu ),计算机系统的 运算 和 控制 核心 1.2 cpu核心数和线程数 cpu核心数指cpu 内核数量,如双核、四核、八核。 cpu线程数是一种逻辑的概念,就是模…

基于 SpringBoot + Redis 实现分布式锁

大家好,我是余数,这两天温习了下分布式锁,然后就顺便整理了这篇文章出来。文末附有源码链接,需要的朋友可以自取。 至于什么是分布式锁,这里不做赘述,不了解的可以自行去查阅资料。 文章目录 实现要点项目…

android13 FLAG_BLUR_BEHIND 壁纸高斯模糊,毛玻璃背景方案设计-千里马framework实战

hi,粉丝朋友们! 今天有个学员朋友,问到了一个高斯模糊相关问题,这个高斯模糊相关的需求我相对还是比较熟悉,下面来重点讲解一下新版本高斯模糊相关的实现。 更多framework干货知识手把手教学 Log.i("qq群",“422901085…

[230528] 托福阅读真题|TPO66 13/30|整卷得分22/30|9:45~10:45|15:40~16:40

The Actor and the Audience P1 rehearsev 排练;排演anticipate v 预期;预料;预见 audiencen 观众brilliantadj 灿烂的;绝妙的rehearsaln 排练;预演;排演crumblev 崩塌stage frightn 怯场(演员…

自动化测试框架?这应该是全网最全自动化框架总结了,你要的都有...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Python自动化测试&…

学术加油站|基于LSM-tree存储系统的内存管理,最大限度降低I/O成本

本文系北京理工大学科研助理牛颂登所著,本篇也是 OceanBase 学术系列稿件第 10 篇。欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/ 「牛颂登:北京理工大学科研助理,硕士期间在电子科技大学网络空间安全研究院从…

资深老鸟总结,Selenium自动化测试实战小技巧,不要再走弯路了...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Selenium4自动化测…

数据库小技能:数据报表

文章目录 I 需求1.1 补贴II 实现思路2.1 生成资金调节报表数据III Dto3.1 报表基本查询IV 接口I 需求 代理商调节活动汇总商户调节活动汇总激励金日月汇总数据源:活动流水表(上游回调) 1.1 补贴 调节活动补贴= D0补贴+T1补贴。(比如交易金额满足1000,转T1) 补贴金额 =…

图扑数字孪生智慧灯杆,“多杆合一”降本增效

前言 随着智慧城市建设的不断深入,智慧灯杆作为城市基础设施的重要组成部分,正在成为城市智能化和绿色化的重要手段之一。 效果展示 图扑智慧灯杆系统在城市道路照明领域引入信息化手段,通过构建路灯物联网,实现了现代化的路灯按…

线性代数 --- Gram-Schmidt, 格拉姆-施密特正交化(下)

Gram-Schmidt正交化过程 到目前为止,我们都是在反复强调“对于无解的方程组Axb而言,如果矩阵A是标准正交矩阵的话,就怎么怎么好了。。。。”。因为,不论是求投影还是计算最小二乘的正规方程,他们都包含了。当A为标准正…

yolov4论文解读

数据层面上的数据增强 四张照片拼接成一张进行训练 相当于增大了batch-size,更适合于单GPU。 Mosaic data augmentation 马赛克数据增强 self-adversarial training(SAT) 自我对抗训练 DropBlock Label Smoothing 损失函数 由IOU改进到CIOU 网络结构 CSPNet&…

Win10 WLAN驱动正常但仍然不显示无线网络解决办法

Win10 WLAN驱动正常但仍然不显示无线网络解决办法 写作背景过程解决方案结尾 写作背景 本菜鸡重置了电脑的网络,然后重新启动后 WLAN 不见了,连不了 WIFI 了,很疑惑,后来经过一番搜索找到了问题所在,写下本篇文章以记…

Spark/Flink广播实现作业配置动态更新

前言 在实时计算作业中,往往需要动态改变一些配置,举几个栗子: 实时日志ETL服务,需要在日志的格式、字段发生变化时保证正常解析;实时NLP服务,需要及时识别新添加的领域词与停用词;实时风控服…

访问学者J1签证面签的七个问题

作为访问学者,申请J1签证面签时可能会遇到一些常见问题。下面知识人网小编将介绍七个访问学者面签可能遇到的问题,并提供相应的答案。 问题一:您将在美国进行何种类型的学术研究? 答案:我将在美国从事学术研究&#x…

普冉PY32L020单片机简介,主频最高48MHZ

PY32L020单片机是一颗32 位 ARM Cortex-M0内核,宽电压工作范围的 MCU。这颗MCU的价格跟八位单片机相差不大,性价比可以说是非常的高了。来看看PY32L020的配置吧。 PY32L020单片机产品特性: 内核: — 32 位 ARM Cortex - M0 — 最…

飞浆AI studio人工智能课程学习(2)-Prompt优化思路|十个技巧高效优化Prompt|迭代法|Trick法|通用法|工具辅助

文章目录 优化思路上节课的例子问题分析思路解析 Prompt优化技巧Prompt优化原理 十个技巧高效优化Prompt迭代法Trick法工具法通用技巧│定基础通用技巧│做强调需求强调怎么做? 通用技巧│提预设Trick法│戴高帽原理 Trick法│说好话以基础计算为例: Trick法│给提示…