6

class Key(encoded=None) Datastore オブジェクトの一意のキー。

Key オブジェクトを str() に渡すことで、キーを文字列に変換できます。文字列は「urlsafe」で、URL で使用できる有効な文字のみを使用します。キーの文字列表現は、それを Key コンストラクター (エンコードされた引数) に渡すことにより、Key オブジェクトに戻すことができます。

注: キーの文字列表現は暗号化されているように見えますが、暗号化されていません! 種類と識別子の両方の生のキーデータに戻すことができます。このデータをユーザーに公開したくない (そして他のエンティティのキ​​ーを簡単に推測できるようにしたくない) 場合は、これらの文字列を暗号化するか、別のものを使用してください。

エンコードされた Key インスタンスの str 形式で、Key に変換し直します。

4

2 に答える 2

13

Python NDB を使用している場合は、次のようにキーを URL セーフ文字列に変換できます。

key_str = yourmodel.key.urlsafe()

次のように、URL セーフ文字列からキーに戻すことができます。

my_key = ndb.Key(urlsafe=key_str) 

詳細については、NDB キー クラスを参照してください。

于 2012-12-07T21:08:41.797 に答える
3

私があなたを正しく理解していれば、エンコードされたキー文字列を取得してKeyオブジェクトに変換する必要があります。もしそうなら、あなたはこれを行うことができます:

from google.appengine.ext.db import Key

# ...
key_str = '<your_key_string>'    
key_obj = Key(key_str) # or Key(encoded=key_str)

entity = db.get(key_obj) # Although the string will work here as well
于 2012-12-07T03:14:05.687 に答える