如何用纯 Python 写 Web 应用?

王树义

读完需要

16

分钟

速读仅需 6 分钟

不用学前端编程,你就能用 Python 简单高效写出漂亮的交互式 Web 应用,将你的数据分析成果立即展示给团队和客户。

我用你教/p>

我要是想用 blog ,可以直接注册一个免费的啊!为什么我要自己开发个 blog 出来p>

为什么你就不能告诉我,该怎么把我目前的数据分析结果,迅速挪到 Web 页面上,跟用户实时交互p>

虽然二者的结果,都是做一个 Web 应用出来。但是,它们关注的焦点,需要的功能,能一样吗p>

但是人家写书和做教程的人,就是不疾不徐,坚持一定要教会你,如何做一个 blog 出来……

你不学,又能怎么办呢道想只凭 Python 脚本,就做一个 Web 应用出来p>

还真别说,最近,这个事儿从幻想,变成了现实。

2

   

样例

这不,我就用纯 Python 脚本写了个 Web 应用。

我编写的代码里,没有一丝半毫的 Web 框架,Javascript,甚至是 HTML 。

这玩意儿能用吗p>

你自己来试试看。

请你打开浏览器,输入以下链接:

https://helloworld-streamlit.herokuapp.com/

你会看到下面的初始化界面。

上面一个,是事件类型;

如果你看过《如何用 Python 和循环神经 络预测严重交通拥堵应该对这个数据集很熟悉。

只不过,当时我们更注重的,是用循环神经 络搭建了一个严重拥堵事件预测模型。

选定之后,你会看到右侧提示两个信息:

  • 你筛选之后,数据框包含行数;

  • 在层叠地图上的可视化结果。

可以看到,一共包含了 4 个文件。

有意思的是,其中 3 个,包括:

都只是部署到远程服务器时,需要用到的配置文件而已。

这代码,少说也得有几百行吧p>

别担心,打开来看看:

它是干什么用的p>

一言以蔽之,给你赋能,让你能够不去操心什么前端后端。只写 Python ,只关注功能,你就能写出一个交互式 Web 应用出来。

当然,既然最后是 Web 应用,那么实际上前后端的功能都是齐备的。

只不过,这些交由 Streamlit 来帮你费心操办。你根本不用管。

5

   

爆发

为什么会有人做了这么一款神器出来p>

原因很简单,咱们前面提到的痛点,是大伙儿都有的。

咱们这些麻瓜(Muggle),遇到痛点只能忍着。

但是真正的魔法师(优秀程序员),是忍不了的。

所以,就得在把全部的数据分析和模型训练工作完成后,把这东西移交给一个工具制作团队。

6

   

资源

看到这里,是不是心动了算学习一下 Streamlit p>

没问题,我前面给你提供的样例,就在 github 上,你可以直接查看源码。

如果你希望重现这个小应用,并且一步步学习掌握 Streamlit 的基础知识和技能,我也已经为你写好了一份手把手的教程。

它不仅教你如何设置环境,安装工具,写作代码,甚至连如何免费部署到 heroku 平台,让用户使用,都毫无保留地教给了你。

那篇文章,我用于参加少数派年度征文活动,所以就不能全文展示在这里了。文末我会给你相关链接。

读完以后,如果你觉得有收获,欢迎在少数派平台上帮我点个赞。

7

   

思考

尝试过之后,你应该不难发现,Streamlit 给你带来了什么。

如果你学过 Javascript 和 Flask, Django 等 Web 应用开发技术,Streamlit 可以加快你的 Web 应用开发与测试进程。

如果你还没有学过上述技术, Streamlit 可以给你赋能,让你一下子有了把数据分析结果变成产品的能力。

给你讲点儿更激进的。

有人已经希望能用它替代掉 Flask 用于产品发布了。

甚至,还把它比作了数据科学界的 iPhone 。

现在凭借 Voila 扩展的加持,你也可以很轻松地把 Jupyter Notebook 变成 Web app ,而且可以免费运行在 mybinder 上面。

可以看到,除了软件包名称,你还需要指定其版本,以避免不同版本之间不兼容,或者运行结果出现差别。

然而,如果你的程序里面,需要引入很多软件包和模块,如果手动一条条书写这种软件包依赖设定,就是一件非常繁琐而头痛的事儿。

我在知识星球里面,写了一篇教程,分享给你如何自动化生成它。

10

   

链接

你可以点击“阅读原文”,查看我放在少数派平台上的这份教程。看完后别忘了点赞哦。

感觉有用的话,请点“在看”,并且把它转发给你身边有需要的朋友。

赞赏就是力量。

如果你对 Python 与数据科学感兴趣,希望能与其他热爱学习的小伙伴一起讨论切磋,答疑解惑,欢迎加入知识星球。

如何用纯 Python 写 Web 应用?

11

   

延伸阅读

你可能也会对以下话题感兴趣。点击链接就可以查看。

  • 如何高效学 Python p>

  • 如何用 iPad 运行 Python 代码p>

题图:Photo by Luke Chesser on Unsplash

文章已被收录至官方知识档案Python入门技能树Web应用开发Web开发基础知识211549 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年1月15日
下一篇 2020年1月15日

相关推荐