如何改进创建内部ID为键的模型的方法?

2024-09-27 00:20:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我为一个iOS应用程序构建了一个后端,其中googleappengine运行python2.7。当我创建对象时,我希望后端给它一个ID,所有客户机都可以使用这个ID作为一个要查询的标识符。我使用的这个方法包含两个put,基本上只是使用db而不是ndb。有没有更好的方法插入对象并给它们一个易于访问的整数ID?你知道吗

class Player(ndb.Model):
     playerID = ndb.IntegerProperty()
     username = db.StringProperty()

class createUserWithUsername(webapp2.RequestHandler):
def get(self):
    username = self.request.get('username')  
    playerArr = Player.query(Player._properties["username"] == username).fetch(1)
        if len(playerArr) > 0:
            self.error(500)
        else:
            newPlayer = Player()
            newPlayer.username = username
            key = newPlayer.put()
            newPlayer.playerID = key.id()
            newPlayer.put()
   # returning player as dict to client

Tags: 方法keyselfiddbgetputusername
2条回答

这里有一种方法,你可以分配一个关键的选择,在一个把操作。用这个构造函数替换“else”子句中的构造函数。你知道吗

“id”属性将为实体提供您分配给它的任何键,就像旧DB中的“key\u name”一样。你知道吗

newPlayer = Player(
    username=username,
    id = # the key of your choosing
    )
NewPlayer.put()

您还需要一种为每个实体生成唯一密钥的方法,但我相信您已经找到了该部分。你知道吗

祝你好运!你知道吗

为什么需要查询ID,然后将其另存为一个单独的属性?为什么不直接用它来吸引玩家呢?你知道吗

player_key = ndb.Key(Player, id)
player = player_key.get()

相关问题 更多 >

    热门问题