2012-12-07 20 views
6

sınıfı Anahtar (kodlanmış = Yok) Bir Datastore nesnesi için benzersiz bir anahtar.Bir anahtarın dize sürümünü, varlık örneğini almak için get() işlevini kullanabileceğim bir forma nasıl dönüştürebilirim

Anahtar nesneyi str() öğesini ileterek bir anahtar dizeye dönüştürülebilir. dize URL'lerindeki kullanılmak için geçerli tek karakterleri kullanır -çok "urlsafe" dir. Anahtarın dize gösterimi Anahtar yapıcı (kodlanmış argüman) geçirmeden bir anahtar nesneye geri dönüştürülebilir.

Not: Bir anahtarın dize olarak gösterimi şifreli görünüyor, ancak şifreli değil! Bu tür ve tanımlayıcı hem ham anahtar verilerine geri dönüştürülebilir. Eğer kullanıcılara bu verileri ortaya çıkarmak (ve onların diğer tarafın anahtarlarını kolayca tahmin izin verin) istemiyorsanız, o zaman bu dizeleri şifrelemek veya başka bir şey kullanın. Kodlanmış bir Anahtar örneğinin str formudur.

cevap

3

Size doğru bir şekilde anlıyorsanız, kodlanmış bir Anahtar dizesini alıp bir Key nesnesine geri dönüştürmek istiyorsunuz. Eğer öyleyse, bunu yapabilirsiniz:

key_str = yourmodel.key.urlsafe() 

Sen geri dönüştürebilirsiniz şu şekildedir: Python NDB kullandığınız durumda

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 
13

, o zaman bir URL güvenli dizeye bir Key dönüştürebilirsiniz bir URL güvenli dize geri Key şöyle: daha fazla bilgi için

my_key = ndb.Key(urlsafe=key_str) 

NDB Key class

bakmak
İlgili konular