gpt4 book ai didi

python - 谷歌应用程序引擎数据存储区唯一ID

转载 作者:太空宇宙 更新时间:2023-11-03 19:07:06 24 4
gpt4 key购买 nike

在 Google App Engine 上,我想为数据表创建唯一键。正如 this 建议的,我正在尝试执行以下操作:

假设我有一个名为 Message 的模型,字段值是从网页获取的,如下所示:

message = db.Message()
message.name = self.request.get('name')
message.email = self.request.get('email')
...
message.put()
message.messageId = message.key().id()
message.put()

我有两个问题:

  1. 这是创建唯一 ID (messageId) 的正确方法吗?我的意思是:先放置实体,获取它的id并分配给messageId,最后再放置?看起来很奇怪。

  2. 如何防止并发问题?我知道我可以使用“交易”,如下所示:

    @db.transactional
    def storeEntity():
    message.name = self.request.get('name')
    message.email = self.request.get('email')
    ...
    message.put()
    message.messageId = message.key().id()
    message.put()

但是如果这次交易失败怎么办?我该如何做,直到成功?提前致谢。

最佳答案

当您不提供 key 时,数据存储区将为您返回一个 key ,因此您不必将实体放置两次。 put 将返回 key 。

所以你可以:

message_key = Message(name = self.request.get('name'), email : self.request.get('email')).put()

关于python - 谷歌应用程序引擎数据存储区唯一ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14442540/

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