新的风暴已经到来,Flask正在面临淘汰

全文共1665字,预计学习时长7分钟

新的风暴已经到来,Flask正在面临淘汰_第1张图片

图源:unsplash

 

作为一名数学家,编码对我来讲只是一个解决方程和创建模型的功能性工具,恰巧我也不是艺术爱好者,用户体验什么的不是我要操心的,我也不会为此烦恼。因此,我的项目始终只是项目。但我很清楚,开发用户界面并不容易。

 

一个人工作时,我经常需要完成自己领域之外的任务:通常需要以其他人可以使用的方式部署代码。不是为了推出下一个大热APP,而是为了让我的亲友使用我开发的小应用程序来推荐新的就餐地点。这往往就需要我付出更多的努力,事情常常是这样的:

 

· 开发一种新颖的解决方案(我的专长)[这是我能做到的]

· 将代码部署到某个Web域的服务器上[这是我能做到的]

· 使用各种框架来设计网站,这需要几个月的学习[这我做不到]

 

所以最后一点我一直缺乏动力的地方,这不是我的专长。即使我确实找到了部署代码的动力,我工作的美学仍会使它无法使用。

 

使用像Flask这样的框架有一个问题:个人需要做的事情太多了。很显然,为了构建一个可以部署代码的精致小网站而浏览所有内容是很荒谬的,而且这确实需要很长时间。

 

来来来,看看Streamlit吧,现在它是我的心头好。

 

Streamlit

 

新的风暴已经到来,Flask正在面临淘汰_第2张图片

图源:streamlit

 

这就是Streamlit发挥作用的地方,也是他们刚刚筹集600万美元来完成这项工作的原因。他们在现有python框架的基础上创建了一个库,该库允许用户部署功能代码。

 

类似于Tensorflow的工作方式:Streamlit在其UI中添加了一个新特性,该特性对应于在Python脚本中调用的新功能。例如下面的6行代码。我附加了“ title”方法,“ write”方法,“ select”方法和“ write”方法(来自Streamlit):

 

import streamlit asstst.title(‘Hello World’)
st.write(‘Pick an option’)keys = [‘Normal’,’Uniform’]
dist_key = st.selectbox(‘Which Distribution do you want?’,keys)st.write(‘Youhave chosen {}’.format(dist_key))

 

将其保存到名为“test.py”的文件中,然后运行“ streamlitrun test.py”,它会在浏览器中的http:// localhost:8501 /上生成以下内容:

 

新的风暴已经到来,Flask正在面临淘汰_第3张图片

 

上面的代码产生了这个结果。Streamlits库使UI编程变得多么高效,它看起来很简洁,又易于创建。

 

JupyterNotebooks也是另一个成功的“替代品”,但它有点不同;作为研究或报告写作的框架,Notebooks是更好的选择,但是如果让别人使用你的代码就不太行了,因为给别人一个notebook代码是不切实际的;协作实验室可以弥补这种差距,但是仍然不够简洁。

 

Streamlit为用户提供了一种简单的方式来部署代码,从而填补了这个空白。对于我们这些喜欢做小东西的人来说,这是极大的福音。

 

易于操作

 

来吧,让我们创建一些别人可以使用的东西。

 

假设我想教我的侄子关于分布的知识,我想做一个他可以使用的应用程序,他选择了一个分布后,该程序会绘制出折线图。就像下面这样:

 

新的风暴已经到来,Flask正在面临淘汰_第4张图片

 

在本例中,你可以看到用户在下拉菜单中有两项选择,当他选择其中一项时,你希望折线图与图表同步。我为用户提供的是:

 

· 有关问题的一些信息

· 然后用户可以做出选择

· 然后将相应的图表返回给用户

 

而在Flask中,类似上述的内容很容易需要数百行代码(甚至在达到美学效果之前),但是Streamlit只需很少量的代码即可实现上述目的。请注意,以上内容只需要以下11行代码:

 

import streamlit as st
import numpy as np# Write a title and a bit of a blurb
st.title(‘Distribution Tester’)
st.write(‘Pick a distribution from the list and we shall draw the a line chartfrom a random sample from the distribution’)# Make some choices for a user toselect
keys = [‘Normal’,’Uniform’]
dist_key = st.selectbox(‘Which Distribution do you want to plot?’,keys)# Logicof our program
if dist_key == ‘Normal’:
    nums = np.random.randn(1000)
elif dist_key == ‘Uniform’:
    nums =np.array([np.random.randint(100) for i in range(1000)])# Display User
st.linechart(nums)

 

这太神奇了!它可以用很少的代码制造出如此外形美观、工作高效的产品。对于以前使用过UI的人来说,会知道获得这种质量的产品有多么困难。为了让Streamlit为研究人员和团队提供一个开源框架,开发时间已被大大减少。

 

新的风暴已经到来,Flask正在面临淘汰_第5张图片

图源:unsplash

 

所有数据科学家或机器学习研究员都不能再抱怨无法部署工作,或者抱怨需要运行MVP,Streamlit已经完成了所有艰苦的工作。

 

这当之无愧成为我们最出色的工作伙伴!

 

新的风暴已经到来,Flask正在面临淘汰

一起分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”

(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)

你可能感兴趣的:(人工智能,热点文章,AI,Streamlit)