gpt4 book ai didi

python - gae 模型 get_by_id() 与 get_by_key_name()

转载 作者:太空狗 更新时间:2023-10-29 20:48:21 25 4
gpt4 key购买 nike

我想知道使用 Model.get_by_key_name() 还是 Model.get_by_id() 获取记录

例如,假设我要返回一些将用于显示记录表的 JSON,并且对于每条记录,都有一个删除该记录的按钮。假设我有模型“Foo”和模型实例“foo”。

我相信我可以使用以下任一方式将每个按钮与适当的记录相关联:

str(foo.key())  #suppose it eval's to "axhYm92ZZXJvY2tyDgsSCENhnb3J5GBQM"

foo.key().id()  #suppose it eval's to "57"

这些值中的一个将进入 HTML 表单,用户可以单击请求删除具有此键/ID 的记录的按钮。

请求将导致:

Foo.get_by_key_name("axhYm92ZZXJvY2tyDgsSCENhnb3J5GBQM").delete()

Foo.get_by_id(57).delete()

现在,作为一个优柔寡断的 ADHD 程序员,我需要知道……哪个是“正确”的方法?它们似乎都有效,但是否存在使一个比另一个更可取的情况?使用“key”方式与“id”方式相比有什么优势吗?

最佳答案

您将 key 名称与字符串化 key 混淆了。他们是不同的。键的名称是您在构造时通过保留的 key_name 属性赋予实体的名称。如果不这样做,系统将生成一个 id。实体键可以具有名称或 ID,但不能同时具有两者。

如果您有意将 Key 字符串化,则可以通过将其传回 Key 构造函数来重构它。

stringifiedKey = str(key)
reconstitutedKey = db.Key(stringifiedKey)

假设您真正的意思是名称与 ID,这是哪个更方便的问题。任何性能差异都将是微观的。

关于python - gae 模型 get_by_id() 与 get_by_key_name(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6240312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com