likes
comments
collection
share

SeaTable 开发者版可以运行 Python 了,开发自定义数据处理流程更方便

作者站长头像
站长
· 阅读数 7

又填新功能了!从 1.8.0 版开始,SeaTable 开发者版加入了运行 Python 的能力(具体配置请查看使用手册),我们可以更方便地快速开发自定义数据处理流程了,让开发小应用变得更简单更有想象力。

SeaTable 是一个支持图片、文件、长文本等丰富数据类型的新型协同表格和低代码平台。它的 API 提供了对记录的 CRUD 操作,也就是记录的创建、读取、更新、删除操作等。这样,我们就可以把它当做一个轻量级的数据库来使用。

举例来说,平时我们用 Python 脚本来写一些小应用的时候,如何保存、展现和共享数据是一个很麻烦的地方,而如果用 SeaTable 这个协同表格和低代码平台,我们就能有效地简化小应用的开发。它提供了 Python 脚本的运行环境,我们可以把脚本和数据放在一个地方管理,而不用再单独找一个服务器。

它为我们提供的便利可以总结为以下几点:

  • 可以在表格中存储多个脚本文件, 一键点击就可以执行运行。
  • 可以调度脚本每日运行,不需要自己再写一个 cron 任务。
  • 可以在表格中增加按钮来调用脚本,让我们的表格更像一个应用。

下面就来进一步了解。

点击脚本一键运行:

SeaTable 开发者版可以运行 Python 了,开发自定义数据处理流程更方便

在表格中增加按钮来调用脚本:

SeaTable 开发者版可以运行 Python 了,开发自定义数据处理流程更方便

Python 脚本运行器的实现原理

SeaTable 中的脚本是如何被执行的呢?下面我们来了解一下。

架构

SeaTable 的 Python 脚本运行包含三个部分:SeaTable、SeaTable FAAS Scheduler、Python Runner,它们的功能与关系如下:

  • SeaTable:新建、保存、修改脚本,发起运行请求等。
  • SeaTable FAAS Scheduler:调度器,主要负责调度 SeaTable 运行脚本请求、安排定时任务和保存、统计脚本运行结果等。相当于一个 master 节点。
  • Python Runner:真正运行脚本,相当于一个 worker 节点。Python Runner 在收到一个脚本运行请求后,会下载脚本内容并启动一个 docker 容器来运行这个脚本。脚本运行结束后,容器自动销毁,以此保证安全性。

Python Runner 和 SeaTable FAAS Scheduler 可以部署到同一机器,结构图如下:

SeaTable 开发者版可以运行 Python 了,开发自定义数据处理流程更方便

如果你需要运行大量的 Python 脚本,那么可以多部署几台 Python Runner,在它们之前安排一个 load balance 组件即可,结构图如下:

SeaTable 开发者版可以运行 Python 了,开发自定义数据处理流程更方便

上下文环境

SeaTable 脚本的其中一个特色之处便是提供了上下文环境,在脚本中可以知道用户当前焦点在哪个表格的哪一行。这样我们就能针对这一行来执行一些操作。下面看一个简单的例子,就是用户点击按钮的时候,把当前行的内容发送到企业微信的群组中。如下所示:

from seatable_api import context

# 该脚本展示利用企业微信群组机器人,把表格中的一行数据发送到企业微信群组中

# 建立群机器人之后自动生成的webhook地址,可以通过post请求该地址进行消息发送
WEBHOOK_URL = "XXXXX";  

# 通过 context 来获取当前行的内容,格式化后发到企业微信
current_row = context.current_row 
msg = format_msg("收到一笔费用", current_row)
requests.post(url=WEBHOOK_URL, msg, headers={ "Content-Type": "application/json" } )

总结

随着运行 Python 能力的加入,SeaTable 开发者版的 Python API 变得更加完善,让快速开发自定义数据处理流程变得更方便了,对于我们这些开发者来说,真的就是一款神器。而且它可以免费下载,私有部署,没有行数、存储量和 API 调用的限制。它还有美观易用的表格界面,可以多人实时协同。还具有强大的表单和数据收集表功能。它非常适合于作为企业内部的数据协作中心,实现数据的集中管理、可视化和自动化。