使用操作构建基本的 CRUD 应用

如何使用操作将仪表板转换为基本的 CRUD 应用程序。

我们将逐步介绍如何在仪表板中构建基本的 CRUD 应用程序。我们将构建一个小型数据应用程序,该应用程序显示来自示例数据库的帐户信息,并允许您创建、读取、更新或删除记录 (CRUD)。

这是我们应用程序的实际操作

Updating a record in our basic account app.

这里需要进行大量的设置,但实际工作量比手动编写数据应用程序要少_几个数量级_。

创建模型

我们将从创建一个模型开始,该模型只是一个原始数据表(在本例中是“帐户”表)的“包装器”。

转到 **+ 新建** > **模型**。选择**笔记本编辑器**,然后选择**原始数据** > **示例数据库** > **帐户**。

将模型保存为“帐户模型”。我们将把这个模型作为一个表添加到我们的“帐户应用程序”中,以浏览记录。

创建基本操作

转到您刚刚创建的“帐户模型”,然后单击右上角的**信息**按钮(它是圆圈图标中的 **i**),然后单击**模型详细信息**。

在“帐户模型”详细信息页面,单击**操作**选项卡。在页面中间,单击**创建基本操作**,Metabase 将为您生成创建、更新和删除操作。

Basic actions set up on the Accounts model.

如果您没有看到操作选项卡,则表示您的管理员尚未为您的数据库启用模型操作。目前,操作仅适用于某些数据库。一旦您可以访问 Metabase 中的模型,您还可以从**+ 新建**菜单或模型详细信息页面创建新的自定义操作。

不过,对于本演练,我们只使用 Metabase 可以自动为您生成的基本操作:创建、更新和删除。

创建仪表板并将“帐户模型”添加到其中

转到 **+ 新建** > **仪表板**。将仪表板命名为“帐户应用程序”。此仪表板将用于添加

  • model(模型)
  • 筛选器小部件,以及
  • 将写入数据库的操作按钮。

在仪表板编辑模式下,单击 **+** 按钮将您创建的“帐户模型”添加到仪表板。

向仪表板添加筛选器并将筛选器连接到模型卡

接下来,在仪表板编辑模式下,单击**筛选器**图标并选择**ID**筛选器。

通过从模型卡的下拉菜单中选择 **ID** 字段,将筛选器连接到仪表板卡。

单击“筛选器设置”侧边栏中的**完成**。

Connecting an ID filter to the ID field in the model card.

如果您在此处遇到问题,请查看仪表板筛选器

向仪表板添加三个基本操作

仍在仪表板编辑模式下,单击**操作**按钮图标以添加操作(带有鼠标指针单击框的按钮)。将鼠标悬停在操作按钮上,然后单击**齿轮**图标。

Adding an action in dashboard edit mode.

我们将首先向仪表板添加“创建”操作

  • 将**按钮文本**标记为“创建”
  • 将**按钮变体**保持设置为“主要”
  • 然后从“操作库”中**选择一个操作**:查找您创建的“帐户模型”,然后选择“创建”操作。

Connecting an ID filter to the ID field in the model card.

将所有字段都设置为“询问用户”。

更改“更新”和“删除”操作以从仪表板筛选器设置的 ID 参数获取值

添加“更新”和“删除”的操作按钮(并选择不同的按钮颜色,您喜欢的任何颜色)。

然后,设置“更新”和“删除”操作以使用仪表板上 ID 筛选器中的 ID 运行。

Setting the ID field to get the value from the ID filter on the dashboard.

如果您已经将操作按钮添加到仪表板,则在仪表板模式下,您可以将鼠标悬停在要更改的按钮上,然后单击该按钮的**齿轮**图标。要更改按钮应从中获取值的位置,请单击**更改操作**。

添加所有按钮后,您可以随意排列它们,然后**保存**您的更改。

试用您的新 CRUD 应用程序

在 ID 筛选器中输入 ID 号,然后单击**更新**按钮。更改一个(或多个)字段中的值,然后单击表单底部的**更新**按钮以提交您的更改。请注意,当前的示例数据库缺少序列生成的 ID,因此如果您尝试创建新记录,则需要输入一个底层帐户表中尚未使用的新 ID。

此时,您应该拥有一个可用的“应用程序”,可以创建、读取、更新和删除帐户表中的记录。

请告诉我们您使用操作构建了哪些类型的应用程序。祝您使用愉快!

延伸阅读

这有帮助吗?

感谢您的反馈!
分析师每周技巧
获取可行的见解
关于 AI 和数据的资讯,直接发送到您的收件箱
© . This site is unofficial and not affiliated with Metabase, Inc.