一个傻瓜式构建可视化web的Python神器streamlit教程正常在学习一个新框架之前,肯定要先调

但对于streamlit来说,请你相信我,这是一个你可以无脑去学习的框架,我之所以这么说,是因为我相信终有一天,你一定能用得上它。

如果你真的需要一些理由的话,那我随便给你举几个例子:

难道真的要为了这种简单的需求,去折腾html+css+js+flask(ordjango)吗?

这是大多数非专业开发者的痛点,也是streamlit这个框架流行开来的主要原因。

Streamlit是一个用于机器学习、数据可视化的Python框架,它能几行代码就构建出一个精美的在线app应用。

它能做什么,取决于你想干什么?

streamlit的功能强大,要学习的函数虽然多,但非常容易上手,学习成本却远比前端+Flask来得低得低。接下来,我会一一介绍。

和安装其他包一样,安装streamlit非常简单,一条命令即可

pipinstallstreamlit考虑到streamlit会附带安装比较多的工具依赖包,为了不污染当前的主要环境,我使用venv新建一个虚拟环境。

python3-mvenv.然后使用如下命令进入该虚拟环境

source./venv/bin/activate接下来,再安装streamlit,命令在上边。

安装的包比较多(数了下竟然接近92个?),过程也会很久,需要点耐心

piplist|wc-l92在安装过程中,可能会遇到一些问题,但也不一定,这取决于你的机器,如遇到问题请自行借助搜索引擎解决。

Streamlit提供了一些入门示例,执行如下命令即可

这里面有很多的demo,你可以看一下,这些Demo还有对应的配套代码

这些代码直接拷贝保存,就可以在本地直接通过如下命令直接运行

streamlitrunst-demo.py2.Markdown文本导入streamlit后,就可以直接使用st.markdown()初始化,调用不同的方法,就可以往文档对象中填入内容

如下我自己写的一个小Demo,供你参考

importstreamlitasst#markdownst.markdown('StreamlitDemo')#设置网页标题st.title('一个傻瓜式构建可视化web的Python神器--streamlit')#展示一级标题st.header('1.安装')st.text('和安装其他包一样,安装streamlit非常简单,一条命令即可')code1='''pip3installstreamlit'''st.code(code1,language='bash')#展示一级标题st.header('2.使用')#展示二级标题st.subheader('2.1生成Markdown文档')#纯文本st.text('导入streamlit后,就可以直接使用st.markdown()初始化')#展示代码,有高亮效果code2='''importstreamlitasstst.markdown('StreamlitDemo')'''st.code(code2,language='python')Streamlit运行的方式与普通的脚本有所不同,应该使用streamlitrunst-demo.py

运行后就会自动打开浏览器加载这个页面,如果没有自动打开,也可以手动拷贝上图中的链接打开访问。

是不是有点那个味了?就这,还只是开胃菜~

关于数据的展示,streamlit由两个组件进行支持

Table的示例

df=pd.DataFrame(np.random.randn(10,5),columns=('第%d列'%(i+1)foriinrange(5)))st.table(df)效果如下

Datafram的示例

df=pd.DataFrame(np.random.randn(10,5),columns=('第%d列'%(i+1)foriinrange(5)))st.dataframe(df.style.highlight_max(axis=0))效果如下,可以看到在图示外,有个向下的小箭头,你点一下,就会进行排序

除此之外,你还能看到我对最大值进行了高亮显示,原因是我传入的参数是df.style.highlight_max(axis=0)

其实还有n多种样式,比如:

这些你都可以在源代码中找到示例

在采集到一些监控数据后,若你需要做一个监控面板,streamlit也为你提供的metric组件

如下代码创建三个指标,并且填入对应的数据

col1,col2,col3=st.columns(3)col1.metric("Temperature","70°F","1.2°F")col2.metric("Wind","9mph","-8%")col3.metric("Humidity","86%","4%")刷新页面,就能看到下面的效果

Streamlit原生支持多种图表:

下面一一展示

折线图

面积图

柱状图

地图

Streamlit的一些原生图表组件,虽然做到了傻瓜式,但仅能输入数据、高度和宽度,如果你想更漂亮的图表,就像matplotlib.pyplot、Altair、vega-lite、Plotly、Bokeh、PyDeck、Graphviz那样,streamlit也提供了支持:

对于这部分,熟悉的同学自行尝试了,这里不再演示。

前面streamlit都只是展示文本和数据,如果仅是如此,那streamlit也就justsoso

对于那些不会前端,并且平时有需要写一些简单的页面的人说,能写一些交互界面才是硬需求。

庆幸的是,你平时在网页上、app上能看到的交互组件,Streamlit几乎都能支持。。

这些内容非常多,也比较简单,一个一个举例也没必要,大家直接去看streamlit源码里的注释即可。

想要在页面上播放图片、音频和视频,可以使用streamlit的这三个组件:

状态组件用来向用户展示当前程序的运行状态,包括:

效果如下:

Streamlit是自上而下渲染的,组件在页面上的排列顺序与代码的执行顺序一致。

一个精美的webapp,只有上下单栏式的布局肯定是不够的。

实际上streamlit还提供了多种多样的布局:

st.sidebar:侧边栏

侧边栏可以做一些用户操作控件

st.columns:列容器,处在同一个columns内组件,按照从左至右顺序展示

st.expander:隐藏信息,点击后可展开展示详细内容,如:展示更多

st.container:包含多组件的容器

st.empty:包含单组件的容器

Streamlit是自上而下逐步渲染出来的,若你的应用场景需要对渲染做一些控制,streamlit也有提供对应的方法

当用户在页面上做一些操作的时候,比如输入数据,都会触发整个streamlit应用代码的重新执行,如果其中有读取外部数据的步骤(数GB的数据),那这种性能损耗是非常可怕的。

但streamlit提供了一个缓存装饰器,当要重新执行代码渲染页面的时候,就会先去缓存里查一下,如果代码或者数据没有发生变化,就直接调用缓存的结果即可。

使用方法也简单,在需要缓存的函数加上@st.cache装饰器即可。

如果需要让别人也能访问这个应用,那你需要有一台服务器,这样才能通过公网ip进行访问

然后创建自己的app

这个App名字好像是要全网唯一,本想取个hello-streamlit的,发现早有人取过了。

然后为你的应用,创建几个Heroku规定的文件

拿到了这份模板后,你就可以基于这份模板创建你的git仓库

gitinitgitadd--allgitcommit-m"init"然后部署到Heroku

herokuloginherokucreategitpushherokumasterherokups:scaleweb=1按照命令行输出的URL就可以访问你的应用了。

查看Heroku日志:

herokulogs--tail要想使用自己域名,需要先通过Heroku验证。然后运行:

herokudomains:addhivecnstats.iswbm.com使用Heroku唯一的缺点就是Heroku是需要梯子的,一般人访问不了,没条件的还是乖乖的备台服务器吧。

Streamlit一个开箱即用的工具集,它可以让一个普通的个人开发者免于学习繁杂的前端知识,就可以轻松、快速的构建一个简洁、优雅的webapp应用,这是streamlit最吸引人的地方。

对于从事数据分析,机器学习领域的人来说,它绝对是开发神器,但即使你不是这些领域的人,你肯定也会有搭建一个webapp需求的时候,streamlit正是你需要的。

PyCharm中文指南

《PyCharm中文指南》使用300多张GIF动态图的形式,详细讲解了最贴合实际开发的105个PyCharm高效使用技巧,内容通俗易懂,适合所有Python开发者。

Python黑魔法指南

《Python黑魔法指南》目前迎来了v3.0的版本,囊集了100多个开发小技巧,非常适合在闲时进行碎片阅读。

Python中文指南

学Python最好的学习资料永远是Python官方文档,可惜现在的官方文档大都是英文,虽然有中文的翻译版了,但是进度实在堪忧。为了照顾英文不好的同学,我自己写了一份面向零基础的朋友的在线Python文档--《Python中文指南》

THE END
1.在线教育云课堂系统设计业务逻辑层:核心的业务逻辑处理层,包括课程管理、学习路径、练习题库、考试模块、支付系统等。 数据层:数据库系统,使用MySQL、PostgreSQL等关系型数据库存储课程数据,利用Redis缓存热数据,提升访问速度。 文件存储层:存储视频、音频、图片等大文件资源,常用云存储服务如AWS S3、腾讯云COS或阿里云OSS。 https://www.jianshu.com/p/b24c68909332
2.教程:从入门到实战(非常详细)大模型最强学习教程,收藏这一篇就够了对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈) 2.AGI大模型配套视频 很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。 https://blog.csdn.net/z551646/article/details/144393730
3.Django教程免费Django框架课程在线学习Django框架快速入门(黑马程序员) 该课程由黑马程序员精品打造,带你了解Django框架。 31986 免费 Python基础视频教程( Django) Python全栈+人工智能VIP课程,手把手带领大家从零基础学习Python语言以及人工智能应用开发。结合实际项目案例,由浅入深、全面系统地培养大家的独立开发能力,以从容应对企业开发任务,应对智能时代的https://www.py.cn/course/list/113/hot.html
4.图灵课堂Java就业培训教程视频课程大纲《Java职业培训指南》视频课程大纲,图灵的Java在线就业课程主要面向在校大学生,没有就业机会转变。刚进入职场的技术小白,有基础想转行的IT在职人员学习,分阶段学习,保证学习效果从零基础直达就业。 Java就业培训教程主要介绍互联网公司的主流技术框架(例如Dubbo、Zookeeper、Lucene,Solr,ElasticSearch,MyCat,微信支付,Jenkinshttps://www.tulingxueyuan.cn/tlzx/tljc/796.html
5.tag标签等+go学习+go面试+计算机网络基础+图解网络+操作系统redis等)+机器学习库+算法库+游戏库+开源框架+自然语言处理nlp库+网络库+视频库+微服务框架+视频教程+音频音乐库+图形图片库+物联网库+地理位置信息+嵌入式脚本库+编译器库+数据库+金融库+电子邮件库+电子书籍+分词+数据结构+设计模式+去html tag标签等+go学习+go面试+计算机网络基础+图解网络+操作系统面试题+https://github.com/18737628639/golangFamily
6.w3cschool官网w3cschool启用中文品牌名--编程狮,是一个专业的W3C前端开发及编程入门学习平台,提供包括HTML,CSS,Javascript,jQuery,C,PHP,Java,Python,Sql,Mysql等编程语言和开源技术的在线教程及使用手册,是类国外w3schools的W3C学习社区及菜鸟编程平台。https://www.w3cschool.cn/
7.全网知识付费网课资源:IT会员社群教程目录持续更新(2024)09.【慕课实战】Vue3源码解析,打造自己的Vue3框架,领悟尤大思维精髓【更新中第13章】 08.GPP5人工智能深度学习高薪就业班52022年价值16800元24章完结无秘 07.2021必修 CSS架构系统精讲248元完结 06.WEB前端线上系统课(20k+标准)2023年重磅首发无秘更新至2614集 https://www.dklx.com/15271.html
8.w3schools在线教程w3schools 在线教程提供主要网络编程语言的免费学习教程,参考资料和实例练习。涵盖HTML,CSS,JavaScript,Python,Java,C,C++,C#,SQL,PHP,Bootstrap,XML,AI,ChatGPT,Bard,人工智能,编程语言,数据库,大数据分析,编程工具,运维工具,通信技术等热门主题。https://www.w3schools.cn/
9.学建站网外贸跨境独立站TOB/TOC系统建设视频教程,独立站建设主题插件商业下载,热门Wordpress主题:Avada_Flatsome_Woodmart;插件:Elementor_wp-rocket_多语言_性能加速/_支付等资源下载和使用视频教程,立即点击查看~https://www.xuejianzhan.com/
10.Java基础视频教程推荐优质Java入门教程下载黑马程序员视频库提供全套免费java视频教程下载、在线java视频教程播放服务,黑马程序员Java教程成为众多Java学习爱好者学习的资源必看教程,全套Java教程下载量超千万。http://yun.itheima.com/course/c26.html
11.微服务[学成在线]day16:基于SpringSecurityOauth2开发认证服务一个微信用户没有在学成在线注册,本系统可以通过请求微信系统来验证该用户的身份,验证通过后该用户便可在本系统学习,它的基本流程如下: 从上图可以看出,微信不属于本系统,本系统并没有存储微信用户的账号、密码等信息,本系统如果要获取该用户的基本信息则需要首先通过微信的认证系统(微信认证)进行认证,微信认证通过后https://cloud.tencent.com/developer/article/1674649
12.SpringBoot+Vue3项目实战,打造企业级在线办公系统了解项目案例业务需求,观看完整的项目演示。掌握学习本课程的方法,获取课程授权码,以及如何利用在线教程学习和答疑。 第2章 构建后端项目,运行分布式项目(万丈高楼平地起) 本章学习用SpringBoot搭建前后端分离架构的后端Java项目,整合SpringMVC和MyBatis框架,并且向后端项目添加一些企业级项目的基础功能,最后将5个分布式项https://coding.imooc.com/class/530.html
13.ASP.NETCore适用于.NET的开源Web框架通过我们的教程、视频课程和文档,了解 ASP.NET Core 提供的所有功能。 了解前端 Web 开发 了解后端 Web 开发 快速且可扩展 在独立的TechEmpower 基准测试中,ASP.NET Core 比任何热门 Web 框架的执行速度都更快。 数据源自TechEmpower 第 21 轮中提供的官方测试。 https://asp.net/
14.C语言中文网:C语言程序设计门户网站(入门教程编程软件)C语言中文网是中国领先的C语言程序设计专业网站,提供C语言入门经典教程、C语言编译器、C语言函数手册,C语言编程技巧,C语言考试试题等,是学习、自学C语言程序设计的好帮手。https://c.biancheng.net/
15.Bootstrap学习之详解网格系统Bootstrap教程Bootstrap学习之详解网格系统 本篇文章给大家介绍一下bootstrap中的网格系统。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 相关推荐:《bootstrap教程》 bootstrap框架中的网格系统就是将容器平分成12份,在使用的时候可以根据实际情况重新编译LESS/SASS源码来修改12这个数值。bootstrap框架的网格https://m.php.cn/faq/471514.html
16.艾编程艾编程是一家专注 Web 全栈大前端,Java 架构师进阶的系统学习平台,平台课程研发标准均来自一线大厂最佳实践,所学即所用。http://icodingedu.com/
17.资源帖丨字节跳动技术Leader们推荐的学习资源链接:http://github.com/yunjey/pytorch-tutorialTensorFlow中文官方文档深度学习另一大框架TensorFlow官方教程的中文版,由极客学院Wiki翻译。链接:http://github.com/jikexueyuanwiki/tensorflow-zhCVF顶会论文库计算机视觉基金会(CVF)赞助了包括CVPR、ICCV等在内业界主流的几大计算机视觉顶会,他们的论文库也结构性地整理https://maimai.cn/article/detail?fid=1589935106&efid=ROE93ZNmM8sYE6S4rjpy5w
18.视频教程IT培训视频IT技术培训视频平台第四阶段:Web框架技术 这个学习路线图包括了从Java基础入门到Web框架的完整的课程体系,全套课程完全由具有丰富开发和培训经验的张中强老师讲授,整个课程以案例讲解为基础,去掉了很多晦涩难懂的概念和术语。很多同学一旦接触这套课程后就有欲罢不能的感觉。这套课程更大的亮点是,我们有技术团队全天24小时随时在线解决大家https://www.kokojia.com/
19.ArkTS语言教程入门学习第1天,ArkTS语言介绍及开发环境安装。基本语法:ArkTS定义了声明式UI描述、自定义组件和动态扩展UI元素的能力,再配合ArkUI开发框架中的系统https://developer.huawei.com/consumer/cn/forum/topic/0201147350567884175
20.大数据培训视频教程全套下载教程提供全套授课视频、笔记、面试题、资料,共计41讲,时长5小时。 尚硅谷_Flume Flume是一个高可靠且高可用的分布式海量日志采集、聚合和传输的系统,它基于简单而灵活的流式架构,具有可靠性机制及故障转移和恢复机制,且有强大的容错能力,已成为大数据开发工程师必会的框架之一。在本套视频教程中,你将学习到Flumehttps://www.atguigu.com/bigdata_video.shtml
21.王喆推荐系统模型篇(task9)强化学习推荐模型DRN一、强化学习基本概念 1.1 强化学习框架的六要素 二、强化学习推荐系统框架 三、深度强化学习推荐模型 DRN 四、DRN 的学习过程 4.1 离线部分 4.2 在线部分 https://blog.51cto.com/u_15717393/5619095
22.Java开发全栈知识体系架构学习(服务器微服务数据库思维导三、java框架篇 一)Spring 1、初识什么是Spring 1)spring简介 答:Spring是一个开源的轻量级的Java开发框架,由Rod Johnson创建 ,是一个容器框架,b、不支持索引(不适合大表和在线处理) c、可以直接对数据文件进行编辑(保存文本文件内容) (9)Memory存储引擎 (01)系统使用临时表,未超过限制的Memoryhttps://www.processon.com/view/60504b5ff346fb348a93b4fa