内容简介:好的工作要想能快速展示出来,有时候不是一件容易的事情。特别是机器学习的一些成果,大都依赖复杂的环境,各种数据资源,把核心算法做完了,还需要开发前端应用。今天试用了一下Python领域发展迅速的一个开源项目Streamlit,它能帮你不用懂得复杂的HTML,CSS等前端技术就能快速做出来一个炫酷的Web APP。
1、什么是Streamlit?
让python代码快速生成web app是很多AI算法工程师们的需求,2019年新兴的这个streamlit项目能帮你解决类似的问题。Python应用程序框架Streamlit,是一个开源的Python库,在github上超过6千颗stars,利用Streamlit可以快速构建机器学习应用的用户界面。
2、安装和试运行
(1)安装
在命令行模式下,启动Python虚拟环境后,直接pip安装
$ pip install streamlit
$ streamlit hello
安装完可以看看hello程序,输入回车自动运行demo,打开本地浏览器输入 localhost:8501马上看到效果。
(2)测试一下代码
写第一个代码吧,启动一个python脚本编辑器,输入:
import streamlit as st
st.markdown('### 三次方计算器 :sunglasses:')
x = st.slider('输入一个数字')
st.write(x, '的三次方为:', x**3)
st.markdown('> Streamlit挺好用 :+1:')
保存本地文件,如:demo.py,然后,命令行调用这个py脚本,输入
$ streamlit run demo.py
打开浏览器,还是localhost:8501可以看到如下效果
测试了一下支持中文还不错,支持Markdown语法,而且还有表情包(见图1)。
3、运行原理和相关支持
Streamlit安装的时候也有一些依赖,我看到了jupyterhub,其它没注意。Streamlit将组件视为变量,在Streamlit中没有回调,每一个交互都是简单地返回,从而确保代码干净。
Streamlit应用就是Python脚本,没有隐含的状态,你可以使用函数调用重构。只要你会写Python脚本,你就会开发Streamlit应用。例如,下面的代码在网页中输出Hello, world!:
import streamlit as st
st.write('Hello, world! ')
仔细看了一下Streamlit目前最新版本是0.56(2020年2月22日),官方网站上支持的python第三方库包括:
也就是说你的python程序如果用到以上的库,完全可以进一步通过streamlit扩展成为Web APP,这当然可以省去很多麻烦工作,加速你的成果上线周期。
简而言之,Streamlit的工作方式如下:
- 对于用户的每一次交互,整个脚本从头到尾执行一遍;
- Streamlit基于UI组件的状态给变量赋值;
- 缓存让Streamlit可以避免重复请求数据或重复计算;
一句话总结: 通过对Streamlit的十分钟试用,感觉代码挺优雅,不用懂得任何前端技术,可以开发一个看起来还很美观的程序。
相关参考:
(1) Streamlit官方站点 https://www.streamlit.io/
(1) Github仓库地址 https://github.com/streamlit/streamlit