Streamlit & Deta 开发体验

最近发现了Streamlit这个 Python 框架,粗略查看了其文档,发现其非常简单易用,上手很快。如果不需要开发自定义组件(Components),甚至不需要涉及任何与前端相关的开发内容。每个脚本文件都是一个页面,可以将其视为画布或容器。编写的 Python 代码从上到下执行,也就对应了页面上展示元素的顺序。由于已有许多封装好的基础组件和第三方组件,因此在使用时只需要几行简单的代码,再加上一些数据处理逻辑,就可以轻松地搭建出一个完整的页面。
在查看文档时,我注意到🔗连接数据源教程中出现了许多熟悉的名字。我选择了最感兴趣的 Deta Base 进行了研究。毕竟在开始使用 Deta 时,它还不叫 Deta Space 而是 Deta Cloud。当初看起来很小众的平台居然出现在其他工具的官方文档教程中,自然是非常好奇的。
notion image
这里稍微介绍一下 Deta Space 这个平台,它是一个云端的个人电脑,它是一个“个人云”。它的设计目的是让你能够在互联网上做更多的事情,同时让你掌控自己的数据。在 Deta Space 上,你可以发现和使用一些有趣和实用的应用,每个应用的用户都有自己的沙盒副本,包含了自己的微服务器、数据库和文件存储。
Streamlit 的官方定位是一个用于机器学习和数据可视化的开源 Python 框架。虽然我目前没有相关的开发需求,但是它能用几行代码构建出一个精美的在线应用,就它简单易用、开发快速和支持交互等优点而言,很难不让人想要创造需求以用它写点小玩具来练手。
在稍稍“创造需求”之后,最终决定以一个朋友之间内部使用的消息发布站点作为实验对象,使用 Streamlit + Deta Collection 进行简单实现。该站点的每一篇内容均包含标题、日期、内容和一张海报。正好可以使用 Deta Collection 的 Deta Base 和 Deta Drive 进行存储,前者存储文本内容,后者存储文件。另外,Deta 提供了 Python SDK,可以很方便地进行集成。
在使用 Streamlit 的过程中,可以实际感受到它的简单易用是真的很简单,而且代码量极少,部分组件的使用只需要一行代码就可以完成。例如,要在页面上放置一个文本输入框,只需要下面这一行简单的代码就可以了,而且在后续的逻辑中,可以直接通过 title 这个变量获取输入框的内容。
# 放置一个文本输入框 title = st.text_input('Title')
Streamlit 还支持多页应用,每一个 Python 脚本文件,就相当于一个页面,唯一特殊的是主页面一般放置在根目录下(相当于首页),而其他页面则需要放置在 /pages 目录下,同时脚本文件的命名也有一定的规则需要遵循,如果感兴趣的话可以从🔗这里查看到更详细的内容。
开发完成后,如何部署应用呢?Streamlit 官方提供了一个开放且免费的平台,开发者可以在上面部署和分享自己的 Streamlit 应用。然而,经过一段时间的使用和观察,我发现 Streamlit Community Cloud 的服务好像不太稳定,偶尔会遇到服务掉线的情况,页面会一直显示加载状态。
关于 Deta Collection 的使用,好像没有太多需要说的。实际上,它非常简单易用。你只需要安装好 Deta SDK,然后在 Deta Space 中生成 Deta Collection 的 Token,在程序中就可以使用 Deta Base 和 Deta Drive 对数据和文件进行增删改查了。无论你是否了解 Deta,我都强烈建议你去尝试使用 Deta Space。
总的来说,使用 Streamlit 和 Deta 进行开发体验是非常快速且令人愉悦的。完善的官方文档和示例可帮助解决开发过程中的绝大部分问题。然而,Streamlit 是一个主要针对机器学习和数据可视化开发的框架,对于一些常见的非相关领域的 Web 开发来说确实有很多不足以应付的地方。因此,我个人不建议在一些复杂的 Web 应用开发中使用它。

链接


©️
 本文采用 CC BY-NC-ND 4.0 许可协议。转载或引用时请遵守协议内容!

© Ruter Lü 2016 - 2024