0

데이터 저장소 작동 방식에 대한 내 머리를 열려고합니다. 필자는 데이터베이스에 대한 이전 경험이 없으므로 상충되는 패러다임 상황이 아닙니다. 나는 NDB의 조상 구조에 대해 혼란 스럽다고 생각합니다.데이터 저장소 엔티티에 대한 키 지정

class Spam(Model.ndb) 
    eggs = ndb.StringProperty(); 

그래서 내가 인스턴스를 생성하고 다음과 같이 보관 :

의 나는이 모델 클래스가 있다고 가정 해 봅시다

foo = Spam(eggs="some string") 
foo.put() 

내가 put() 내가 쉽게 get()를 호출 할 수있는 키를 반환 이해 동일한 스크립트에서 액세스하려고하지만 자체 키를 지정하는 방법이 있으므로 내 앱의 다른 스크립트에서 foo 엔티티에 쉽게 액세스 할 수 있습니까?

은 내가 이런 foo의 부모를 지정할 수 있습니다 실현 :

foo = Spam(parent=ndb.Key("Bar","Baz"),eggs="some string") 

그러나 거기에서

이 어떻게 다른 스크립트에서 foo에 액세스 할 수 "Bar" 및/또는 "Baz" 사용해야합니까?

+2

먼저, 귀하의 질문에 대한 더 관련성이 높은 제목을 선택하십시오 : 이것은 키 지정에 관한 것이며 "다른 스크립트"와는 관련이 없습니다. 둘째, [키 관련 문서] (https://cloud.google.com/appengine/docs/python/ndb/entities)를 읽었습니까? 자신의 키를 지정하는 방법에 대해서는 매우 분명합니다. –

+0

제목을 좀 더 구체적으로 변경했습니다. 내 목표는 하나의 스크립트에 엔티티를 넣고 다른 엔티티에 'get()'을하는 것이라는 "다른 스크립트"와 관련이 있습니다. 핵심 설명서를 읽었지만 인터페이스에 대한 설명이 명확하지 않아서 여기에 왔습니다. –

답변

1

계층 구조가있는 경우 부모가 사용됩니다. 따라서 요리 책을 가지고 있다면 책을 부모로, 각 요리법을 어린이로 넣을 것입니다. 나는 그것이 당신이 원하는 것이라고 생각하지 않습니다. 당신이 키를 설정하려면

이 작업을 수행 :

당신은 항상 당신이 단순히 다시 개체에 액세스 할 때,이, 놀이기구를 통해 경쟁하고 사고를 방지 할 앱 엔진은 자신의 키를 설정할 수 있습니다
SuperEggs= Spam(id='SuperEggs', eggs="2 egg whites") 
SuperEggs.put() 

어떤 분야에 도전해라. 이름을 추가하고 검색하십시오.

FYI put에서 반환 된 ID를 사용하면 앱 또는 승인 된 앱의 모든 부분에서 액세스 할 수 있습니다. 데이터 저장소는 스크립트에 국한되지 않는 전역입니다.

+0

고마워,이게 내가 원하는거야. 데이터 저장소가 글로벌이라는 사실을 알고 있습니다. 하나의 스크립트에 엔티티를'put() '하고 그 사이에 변수를 전달하지 않고 다른 엔티티를'get()'하는 방법에 대해서는 명확하지 않았습니다. –

관련 문제