2012-12-07 10 views
6

Klucz klasy (encoded = None) Unikalny klucz dla obiektu Datastore.jak przekonwertować wersję klucza klucza na powrót do formularza, w którym można użyć funkcji get(), aby uzyskać instancję obiektu

Klucz można przekonwertować na ciąg znaków, przekazując obiekt Key do str(). Łańcuch jest "urlsafe" - wykorzystuje tylko znaki ważne do użycia w adresach URL. Ciąg reprezentujący klucz można przekonwertować z powrotem na obiekt klucza, przekazując go do konstruktora klucza (zakodowany argument).

Uwaga: Ciąg znaków reprezentujący klucz wygląda tajemniczo, ale nie jest zaszyfrowany! Można go przekonwertować z powrotem na surowe dane klucza, zarówno rodzaj i identyfikator. Jeśli nie chcesz ujawniać tych danych użytkownikom (i pozwolić im łatwo odgadnąć klucze innych podmiotów), zaszyfruj te ciągi lub użyj czegoś innego.

kodowana Forma stringu instancji Key do konwertowania z powrotem do klucza.

Odpowiedz

3

Jeśli dobrze rozumiem, chcesz wziąć zakodowany ciąg klucza i przekształcić go z powrotem w obiekt Key. Jeśli tak, można to zrobić:

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

W przypadku korzystania Pythona NDB, potem można przekonwertować klucz do bezpiecznego adresu URL w następujący sposób:

key_str = yourmodel.key.urlsafe() 

można przekształcić z powrotem bezpieczny ciąg URL z powrotem do Key następująco:

my_key = ndb.Key(urlsafe=key_str) 

aby uzyskać więcej informacji zajrzyj na NDB Key class

Powiązane problemy