Экземпляр класса Key представляет собой уникальный ключ некоего объекта в хранилище.
Класс Key реализован в модуле google.appengine.ext.db.
Каждый экземпляр модели, помещенный в хранилище, имеет свой уникальный ключ, сопоставленный с объектом. Метод key() экземпляра модели возвращает его объект типа Key. Если объект еще не был помещен в хранилище с помощью метода put(), вызов метода key() выдаст исключение NotSavedError.
Приложение может загрузить экземпляр класса модели заданного ключа с использованием функции get().
Экземпляры класса Key могут быть значениями свойств объекта, в том числе динамическими свойствами моделей Expando и членами списка типа ListProperty. Свойство типа ReferenceProperty в модели предоставляет возможность автоматического связывания для соответствующего значения типа Key.
Уникальный ключ для объекта хранилища.
Ключ может быть представлен строкой путем передачи объекта типа Key функции str() (или вызовом метода __str__() самого объекта). Получаемое строковое значение содержит символы, которые допускаются стандартами к использованию к адресной строке URL. Строковое представление ключа может быть сконвертировано обратно в объект типа Key путем передачи этого значения конструктору класса Key (с параметром encoded).
Примечание: Так как строковое представление ключа может быть легко сконвертировано в его объект, это открывает возможность злоумышленнику сделать предположения о значении других ключей при известном одном. Несмотря на то, что строковые представления могут быть спокойно использованы в URL, во избежании проблем с безопасностью, приложение должно использовать их только в том случае, если выполняется обращение к общедоступным данным.
Класс Key имеет следующий метод:
Создает новый объект типа Key при помощи пути предков, заданного с использованием одного и нескольких ключей объектов.
Путь представляет собой иерархию отношений родитель-потомок для объекта. Каждый элемент пути задается как тип объекта и его числовой идентификатор, либо название ключа. Полный путь сопоставленный объекту, содержит сначала ключи его предков, затем самого объекта.
К примеру, следующий код создаст ключ для объекта типа Address с числовым идентификатором 9876, родителем которого будет объект типа User с именованным ключом 'Boris':
k = Key.from_path('User', 'Boris', 'Address', 9876)
Параметры:
Для дополнительной информации о путях к объекту, обратитесь к разделу Ключи и группы объектов.
Экземпляр класса Key имеет следующие методы:
Возвращает название приложения, которое поместило объект в хранилище.
Возвращает тип объекта данных в качестве строки.
Возвращает числовой идентификатор или значение None, если объект его не имеет.
Возвращает имя объекта данных или значение None, если объекту не задано имя.
Возвращает имя или числовой идентификатор объекта данных или значение None, в том случае, если объект не имеет ни имени, ни числового идентификатора.
Возвращает значение True, если объект имеет имя или числовой идентификатор.
Возвращает ключ типа Key родительского объекта или значение None, если у объекта нет родителя.