0

Python 2.7 を実行する Google App Engine を使用して、iOS アプリのバックエンドを構築しました。オブジェクトを作成するときに、バックエンドに、すべてのクライアントが照会する 1 つの識別子として使用できる ID を与えるようにします。私が使用するこの方法には、ndb の代わりに db を使用していたので、基本的には 2 つの put が含まれます。オブジェクトを挿入し、簡単にアクセスできる整数 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
4

2 に答える 2

0

たった 1 回の put 操作で、選択したキーを割り当てる方法を次に示します。「else」句にあるコンストラクターをこれに置き換えます。

「id」プロパティは、古い DB で「key_name」が行うのと同じように、エンティティに割り当てたキーを与えます。

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

また、エンティティごとに一意のキーを生成する方法も必要になりますが、その部分は既に理解されていると思います。

幸運を!

于 2013-09-18T13:52:25.427 に答える
0

ID を照会してから別のプロパティとして保存する必要があるのはなぜですか? プレーヤーを取得するために直接使用しないのはなぜですか?

player_key = ndb.Key(Player, id)
player = player_key.get()
于 2013-09-12T15:54:34.217 に答える