小编STE*_*Lab的帖子

将 ORM 展平并重新映射到 Pydantic 模型的最佳方法

我使用 Pydantic 和 FastApi 将 ORM 数据输出为 JSON。我想展平并重新映射 ORM 模型,以消除 JSON 中不必要的级别。

这是一个简单的例子来说明这个问题。

original output: {"id": 1, "billing": 
                    [
                      {"id": 1, "order_id": 1, "first_name": "foo"},
                      {"id": 2, "order_id": 1, "first_name": "bar"}
                    ]
                 }

desired output: {"id": 1, "name": ["foo", "bar"]}
Run Code Online (Sandbox Code Playgroud)

如何将嵌套字典中的值映射到 Pydantic 模型?通过使用Pydantic 模型类中的init函数,提供了适用于字典的解决方案。此示例展示了它如何与字典一起使用:

from pydantic import BaseModel

# The following approach works with a dictionary as the input

order_dict = {"id": 1, "billing": {"first_name": "foo"}}

# desired output: {"id": 1, "name": "foo"}


class Order_Model_For_Dict(BaseModel):
    id: int …
Run Code Online (Sandbox Code Playgroud)

python nested sqlalchemy pydantic fastapi

10
推荐指数
1
解决办法
6645
查看次数

如何使用 Google Apps Docs 脚本将光标移动到插入文本的末尾?

我正在为 Google 文档编写一个插件,以允许用户从预设文本示例列表中进行选择以插入到他们的文档中。我希望像这样插入文本:

第一个文本插入

第二次文本插入

第三个文本插入

但是,我的代码产生以下结果:

第三个文本插入

第二次文本插入

第一个文本插入

发生相反的排序是因为光标位置保持在同一位置而不是更新到最后一个文本插入的末尾。

这是我正在使用的代码:

function insertText(text) {
  var doc = DocumentApp.getActiveDocument();
  var cursor = doc.getCursor();
  newPosition = cursor.insertText(text + '\r');
  doc.setCursor(newPosition);
}
Run Code Online (Sandbox Code Playgroud)

代码需要足够灵活,以便在光标所在的位置插入文本,然后在返回字符后添加新条目。例如,如果用户将光标放在现有文本项 B 和 C 之间的空行上,则插入的文本应出现在项目 B 和 C 之间的新行上。

文本插入之前的示例:

现有_文本_A

现有文本B

现有_文本_C

文本插入后所需的输出:

现有_文本_A

现有文本B

第一个文本插入

第二次文本插入

第三个文本插入

现有_文本_C

我尝试了多种方法,例如使用appendText或getNextSibling,但它们没有产生所需的输出。谢谢你的帮助!

google-docs google-apps-script

5
推荐指数
1
解决办法
2178
查看次数

如何从 Google App Maker 作为外部 mysql 数据库连接到 Google Cloud SQL 数据库?

我正在尝试从我的 Google App Maker 应用连接到 Google Cloud SQL 数据库。不幸的是,我的 IT 人员尚未将 Google App Maker 设置为默认使用 Google Cloud SQL,因此我尝试以与过去连接外部 MySQL 数据库相同的方式连接到数据库,但它不适用于公共 IP 地址。

我已经创建了一个 Google Cloud SQL 数据库,并且可以使用公共 IP 地址从 MySQLWorkbench 连接到它。为了连接数据库,我必须为我的家用计算机添加 IP 地址。我不需要使用 SSL。

我为我的 Google App Maker 应用创建了一个 Google 服务帐户。然后,我将此服务帐户包含在包含 Cloud SQL 数据库的 Google 项目中。我为它分配了 Cloud SQL Admin 和 Cloud SQL Client 的权限。

我在 App Maker 中使用此代码尝试连接。这与我在其他外部 MySQL 数据库中使用的代码相同。IP 地址 34.xx.xx.xx 是 Google Cloud SQL 实例概览页面中列出的公共 IP 地址。

// App Settings

// Important Note: This is for demo purposes …
Run Code Online (Sandbox Code Playgroud)

google-cloud-sql google-app-maker

0
推荐指数
1
解决办法
325
查看次数