2023-09-11 09:09:37 | 我爱编程网
痛点
从我开始折腾数据分析工具的那一天,就没有想明白一件事儿 —— 我打算把数据分析的成果做成一个 Web 应用,为什么这么难?
我需要的核心功能,无非是在网页上接收用户输入,然后做分析处理,把分析结果反馈给用户,完事儿。
可是这谈何容易?
很多人都会微笑着告诉你,想做 Web 应用?这得学前端编程, HTML + Javascript 了解一下吧!
什么?你还需要在后台做数据分析?那你就得学 Web 框架了。
你说喜欢 Python ?那就学个 Django 或者 Flask 好了。
我也不是没有看过 Django 和 Flask 的教程,还曾经 付费学习 过。光是 Django 配置环境,就够写一章出来。
作为学习的中间成果,我还写了这篇《如何用 Python 做 Web 开发?——Django 环境配置》分享给你。
真正让我痛苦的,不是 Web 框架的操作有多么琐碎,而是教程里的案例,为什么都那么奇怪?
几乎所有的教程,都指向一个目标:
来,我教你做一个 blog 出来!
我用你教?!
我要是想用 blog ,可以直接注册一个免费的啊!为什么我要自己开发个 blog 出来?
为什么你就不能告诉我,该怎么把我目前的数据分析结果,迅速挪到 Web 页面上,跟用户实时交互?
虽然二者的结果,都是做一个 Web 应用出来。但是,它们关注的焦点,需要的功能,能一样吗?
但是人家写书和做教程的人,就是不疾不徐,坚持一定要教会你,如何做一个 blog 出来……
你不学,又能怎么办呢?你难道想只凭 Python 脚本,就做一个 Web 应用出来?
还真别说,最近,这个事儿从幻想,变成了 现实 。
样例
这不,我就用纯 Python 脚本写了个 Web 应用。
我编写的代码里,没有一丝半毫的 Web 框架,Javascript,甚至是 HTML 。
这玩意儿能用吗?
你自己来试试看。
请你打开浏览器,输入以下链接:
你会看到下面的初始化界面。
初始化完毕之后,页面会分成左右两栏。左面是两个下拉候选框,分别让你指定需要分析的数据范围。
上面一个,是事件类型;
下面一个,是事件发生归属地。
如果你看过我的文章《如何用 Python 和循环神经网络预测严重交通拥堵?》,应该对这个数据集很熟悉。
只不过,当时我们更注重的,是用循环神经网络搭建了一个严重拥堵事件预测模型。
而今天,我们是要进行探索性数据分析,也就是根据我们感兴趣的目标,对数据进行整理操作,然后可视化显示。
选定之后,你会看到右侧提示两个信息:
你筛选之后,数据框包含行数
在层叠地图上的可视化结果。
怎么样?
麻雀虽小,五脏俱全。
虽然咱们这个 Web 应用很简单,不过交互分析该有的功能和流程,基本上都涵盖了。
你可能会问:
王老师,编这么一个应用出来,不简单吧?
让我带你到幕后,看看是不是很复杂。
幕后
我把这个应用的全部源代码,都为你存储到了 Github 上。请你访问这个网址获取:
可以看到,一共包含了 4 个文件。
有意思的是,其中 3 个,包括:
Procfile
setup.sh
requirements.txt
都只是部署到远程服务器时,需要用到的配置文件而已。
也就是说,只有最后一个 helloworld.py 是主角,它包含了实现咱们全部交互式数据分析功能的 Python 脚本文件。
这代码,少说也得有几百行吧?
别担心,打开来看看:
上面这张截图,就已经包含了实现交互数据分析功能的全部代码。
神奇吧?
解读
这么短的代码,为什么能有如此强大的功能?
这是因为它背后使用的一个软件包,叫做 streamlit 。
它是干什么用的?
一言以蔽之,给你赋能,让你能够不去操心什么前端后端。只写 Python ,只关注功能,你就能写出一个交互式 Web 应用出来。
当然,既然最后是 Web 应用,那么实际上前后端的功能都是齐备的。
只不过,这些交由 Streamlit 来帮你费心操办。你根本不用管。
爆发
为什么会有人做了这么一款神器出来?
原因很简单,咱们前面提到的痛点,是大伙儿都有的。
咱们这些麻瓜(Muggle),遇到痛点只能忍着。
但是真正的魔法师(优秀程序员),是忍不了的。
在这段来自 PyData LA 2019 的视频里,Streamlit 的 CEO Adrien Treuille 谈及了他在数据智能企业中,长期遭遇的痛点。
最大的痛点,就是数据科学家训练好机器学习模型后,需要验证效果,和用户反馈沟通。
但是,做机器学习的工程师本身,并不掌握这一整套的工具栈。
所以,就得在把全部的数据分析和模型训练工作完成后,把这东西移交给一个 工具制作团队 。
人家做完以后,就告诉数据科学团队说,做好了。但是注意,现在处于需求 冻结 阶段。这个应用你们可以随便用, 只是别乱改 。改坏了我们管不了。因为最近两个月,我们还得给其他若干数据分析团队做 app 。大概 几个月以后 ,我们又能回来帮助你们了……
Adrien Treuille 很敏锐地捕捉到了这个长期痛点,于是在 2018 年, 创立了 streamlit 。
目标很简单,给数据科学团队提供简单的工具,让他们使用已经掌握的 Python 编程技能,就能直接做 Web 应用。
什么 “等上两三个月不许改”?!你们自己慢慢儿玩儿去吧,我们想怎么改,就怎么改!
至于做出来的东西嘛,可以是这样的:
资源
看到这里,是不是心动了?也打算学习一下 Streamlit ?
没问题,我前面给你提供的样例,就在 github 上,你可以直接查看源码。
如果你希望重现这个小应用,并且一步步学习掌握 Streamlit 的基础知识和技能,我也已经为你写好了 一份手把手的教程 。地址在这里 。
它不仅教你如何设置环境,安装工具,写作代码,甚至连如何免费部署到 heroku 平台,让用户使用,都毫无保留地教给了你。
那篇文章,我用于参加少数派年度征文活动,所以就不能全文展示在这里了。
读完以后,如果你觉得有收获,欢迎在少数派平台上帮我点个赞。谢谢支持!
思考
尝试过之后,你应该不难发现,Streamlit 给你带来了什么。
如果你学过 Javascript 和 Flask, Django 等 Web 应用开发技术,Streamlit 可以加快你的 Web 应用开发与测试进程。
如果你还没有学过上述技术, Streamlit 可以给你 赋能 ,让你一下子有了把数据分析结果 变成产品 的能力。
给你讲点儿更激进的。
有人已经希望能用它替代掉 Flask 用于产品发布了。
还有人说,将来写技术文档,也应该充分使用 Streamlit 。
甚至,还把它比作了数据科学界的 iPhone 。
这里,它是借喻 iPhone 开启智能手机时代,说明 Streamlit 的 划时代性 。
我 不希望 你也变得如此激进。
因为这里提到的每一种功用,现在还都有非常专业的工具做的更好,而且新的工具也在不断涌现。
例如说,我们在多个教程中一直使用 Jupyter Notebook 。
现在凭借 Voila 扩展的加持,你也可以很轻松地把 Jupyter Notebook 变成 Web app ,而且可以免费运行在 mybinder 上面。
但是,你可以看到,一个新的工具,以一种简单,而不是更繁复的办法,解决一个功能痛点,是一件多么令人欣喜的事儿。
看了这篇文章,可能会给你一种误解,似乎 JavaScript 为代表的前端编程技术,再也不需要学了。
其实不是这样的。
可以想象,开发门槛降低以后,将来会有更多的人使用 Python 来做 Web 应用。
用 Streamlit 这样的方法,他们只是开发出了一个原型。
要是想打造精品,就必须精细调控很多细节。 我爱编程网
这时候, 如果你精通 Javascript ,那你潜在的合作对象一下子就多了起来,你掌握的这门技术,也就有了更大的价值。
还记得吗?我不止一次给你强调过,比起一个工具自身的能力来, 协作网络更重要 。忘了的话,记得复习《学 Python ,能提升你的竞争力吗?》。
这就好像印刷术的发明,不是让会写字这件事儿变得失去价值,而是全社会都增大了对好作品的渴求。深刻的思考,加上有效的文字表达,会让你生存得更好。
当然,如果你不希望精通写作技艺,只是想做一个抄书匠糊口。那么印刷术就可能会替代你的工作,结果就不那么美妙了。
小结
这篇文章,我为你介绍了 Streamlit 这款有趣的工具。希望你读过之后,掌握了以下知识点:
借助 Streamlit ,你可以用纯 Python 编制 Web 应用;
学 Web 设计依然很有前途,因为你的潜在合作群体正在迅速扩大;
不要惹魔法师(优秀程序员)。他们的痛点需求会转化成无尽的战斗力,兴许会直接替掉你的日常工作。
更多Python知识,请关注:Python自学网!!
少儿编程网课如何授课摘要:少儿编程教育通常有线上的网课和线下的培训班两种方式,一般家长更信任线下培训班的教学质量,实际上少儿编程网课也是很靠谱的,而且相对来说,线上少儿编程课能减轻经济负担、摆脱地域限制、学习时间灵活,孩子可自由选择老师、自主控制进度,不过要注意家长陪同监督学习。少儿编程网课有直播课和录播课两种授课方式,下面来了解一下少儿编程网课吧。一、少儿编程网课靠谱吗少儿编程有线上和
江都立优教育机构培训中心怎么样这个教育机构很好。根据立优教育官网查询得知,立优教育机构培训中心,是中国网络学历教育服务及智慧教育综合服务提供者。着力于以大数据、云计算、人工智能等信息技术为支撑,创新教育产品、构建智慧教育模式,为用户提供多元化和定制化的教育解决方案。立优教育全面布局,在网络高等教育、成教信息化、高校信息化、IT教育和企业培训等领域稳步推进,在全国建设标准化学习中心
本文目录一览:1、想从事软件开发,软件开发培训学校哪家好一些2、web前端培训好的机构3、web开发的发展前景怎么样?想从事软件开发,软件开发培训学校哪家好一些软件开发培训班培训:中软国际教育集团、课工场、极客学院、千锋教育、传智播客—黑马程序员。1、中软国际教育集团中软国际教育隶属于中软国际集团,是中软国际著名的高端IT人才培训基地。为本部中软国际集团的软件开发部门提
去补习班老师讲太快跟不上怎么办遇上补习班老师讲课太快的问题一定要重视不能去到什么都没明白就回家了建议充分利用课余时间把不明白的点拿出来让老师给你再讲解一下...老师上课讲的很快怎么办?首先,上课听不懂又不敢举手问时,先把不懂的地方做标记。如果上课过程中,老师讲课或者讲试卷的节奏过快,而作为学生,却不敢举手要求老师讲慢点或重新把知识点讲一次,那么就先把自己听不懂的
成人学编程哪家培训机构好成人学编程好的培训机构有:1、慕课网中国最大的在线编程学习平台之一,提供了大量免费和付费的编程课程,包括Python、Java、前端开发等。课程形式多样,有视频讲解、文字教程、实战项目等,适合不同层次的编程学习者。2、极客学院国内最大的IT技能学习平台之一,提供了大量在线编程课程,包括Python、Java、大数据、人工智能等。课程质量较
初学者如何迅速学习web前端开发?学习web前端不怕没哟基础,就怕没有方向,推荐给你web前端学习的路线图:阶段1.前端核心基础HTML+_CSS核心、JavaScript基础语法、JavaScript面向对象、JavaScriptDOM和BOM编程、jQuery框架阶段2.HTML5+CSS3+移动端核心HTML5新特性、Canvas专列、CSS3新特性、C
编程线上培训机构排名编程线上培训机构排名如下:1、编程猫深圳点猫科技有限公司2、童程童美达内时代科技集团有限公司3、小码王杭州小码教育科技有限公司4、LEGO乐高教育乐高贸易(北京)有限公司拓展知识:简单的说,编程就是为了借助于计算机来达到某一目的或解决某个问题,而使用某种程序设计语言编写程序代码,并最终得到结果的过程。计算机虽然功能十分
王道训练营有几个校区截止2023年有两个。截至2023年,王道训练营有两个校区,分别是武汉和深圳,武汉王道训练营地址在武汉市洪山区花城大道武汉软件新城2期。王道训练营分为LinuxC/C++、JavaEE、Python大数据三个方向,其中武汉校区培训C++和Java方向。王道培训大概多少钱?答:费用大概是4000-10000,有初级,中级和高级,要看你想学习哪个,最重要的是
2023-10-08 16:59:01
2023-06-27 20:13:22
2023-10-18 11:56:36
2023-10-18 11:54:48
2023-10-18 11:48:07
2023-10-18 11:44:56