streamlit 是一款可以快速进行简单网页开发的 Python 库,其 slogan 是:
A faster way to build and share data apps
即“一种快速构建、分享数据应用的方法”。其在机器学习、数据科学,甚至当今大模型领域非常流行。其优点非常突出:
- 使用上述领域开发者最喜欢的语言:Python。不用写前端,pip 安装就能用。
- 简单几行代码就能快速攒出一个数据可视化、打标等小工具的网页。
- 还支持丰富的第三方组件扩展,比如社区开发的 code_editor 。
当然,如果你还想要低延迟、高并发、深度定制等需求,那对不起,这是 streamlit 被 tradeoff 出去的那一部分。但对于面向内部少数人使用的小工具来说,streamlit 简直是利器。可以说这个小生态位被它卡的太好了,所以能在 2022 年以 8 亿美金卖给 Snowflake。
本文我们就一块来看看其基本设计哲学和一些简单实践。
设计哲学
其基本设计哲学可以概括为:
- 用后端语言写前端
- 收到新事件会重新构建
- 支持会话级别的缓存