Клиентская библиотека Google Clode Datastore создает объект - PullRequest
1 голос
/ 22 марта 2019

Я работаю с некоторой документацией по API хранилища облачных данных Google

А именно https://googleapis.github.io/google-cloud-python/latest/datastore/client.html и https://googleapis.github.io/google-cloud-python/latest/_modules/google/cloud/datastore/entity.html#Entity

Используя оба источника, я создал следующее.Меня очень смущает client.key (), а именно 1234 и пространство имен.В моем хранилище данных отображаются ключи, которые кажутся случайными?уникальный номер, и я не видел никакой ссылки на пространство имен.Почему этот пример кода указывает целое число и пространство имен?Есть ли лучший способ создания ключа или эти два параметра можно безопасно пропустить?

    from google.cloud import datastore
    client = datastore.Client()
    key = client.key('Collection', 1234, namespace='_Doctest')
    entity = datastore.Entity(key=key)
    entity['property'] = 'value'
    client.put(entity)

key description

1 Ответ

1 голос
/ 26 марта 2019

Я обычно создаю ключи напрямую без пространства имен, просто используя вид Entity и позволяю хранилищу данных делать все остальное ( вы также можете указать идентификатор, но это необязательно ), так как вы создаете сущность с частичный ключ (с указанием только вида) и как только вы put сущность в хранилище данных, ключ сущности обновляется с идентификатором, чтобы быть полным ключом ( теперь имеет вид и ID )

key = client.key('Collection') # create partial key <Key('Collection')>
entity = datastore.Entity(key=key) # create entity using the partial key
entity['property'] = 'value'
client.put(entity)

# Print the full key <Key('Collection', 5293786145123) project=project-id>
print(f"Entity key = {entity.key}") 

Примечание : вы также можете создать ключ с родителем ( Группа объектов ), добавив родительский ключ к новому объекту назначение ключа в первой строке

key = client.key('Collection', parent=<parent_key>)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...