Streamlit 体验

Streamlit介绍

✨Streamlit是一个可以用于快速搭建Web应用的Python库。

Streamlit官方的定位是服务于机器学习和数据科学的Web应用框架。

当然,您也可以将其用于给自己的Python程序快速创建美观的GUI。

Streamlit与Markdown有异曲同工之妙。它让创作者专注于后端业务的实现,而无需为前端设计分心。


Streamlit的特色
  1. API简明易用

    API非常友好,结构清晰,事实上一天就能学会。

  2. 无需任何前端知识(HTML CSS JS)就可以构建Web应用

    (1) 基于tornado框架,封装大量常用组件方法,支持大量数据表、图表等对象的渲染,支持网格化、响应式布局。

    (2) 渲染语言为Markdown(GFM);支持HTML文本的渲染。所以也能让你将任何HTML或CSS代码嵌入到应用中。

  3. 社区资源丰富,已成为机器学习界所使用的主流框架。

    (1) 官方论坛 非常活跃;

    (2) Awesome Streamlit 提供了丰富的实例和源码;

    (3) 去Github逛逛吧;

    (4) 微信群名: Streamlit。这个群并不是我创建的,不过里面有一群技术狂魔互相帮助。


来两个案例感受一下
  1. 德甲联赛数据分析

  2. Slayer St Edition

  3. 这个文档也是用Streamlit制作的哦。


什么情况适合用Streamlit?

作个比较

(1) 前后端都用JS: Vue + Node + someUI

(2) 前端用HTML 后端用Python: Flask、Django 等等

(3) 前后端都用Python: Streamlit、PyWebIO 等等

我为什么选择Streamlit

(1) 我需要一个GUI解决方案,能在高效率和美观之间找到平衡,并且注重开发速度和实用性;

(2) 我掌握的前端知识较少,并且没有前端设计艺术细胞;

(3) 我不需要实现太复杂的页面结构与功能;

(4) 我没有精力去涉猎学习成本较高的解决方案了(不然我为什么选择Python)……

如果我不使用Streamlit,那我就得去学习:CSS,JavaScript,Vue,Node,Bootstrap,Flask,TkInter


本文档基于以下假设

(1) 您熟练掌握Python;

(2) 您了解Numpy、Pandas、各种可视化库;

(3) 强烈建议您掌握Markdown语言的一般知识。使用Markdown语言将大大提升使用Streamlit的体验。