2010-03-18 2 views
0

를 memcache에 저장하여 빈번한 쿼리를 생략하고 싶습니다. memcached에서 encoded_key을 다시 가져 오면 Key(encoded=encoded_key)으로 키를 재구성 할 수 있습니다.Datastore (App Engine)에서 Key 객체의 모델 컨텍스트 가져 오기

그러나 키에서 실제 개체를 어떻게 쿼리 할 수 ​​있습니까? 가능성은 사용하는 것입니다

GqlQuery('SELECT * FROM ' + Key(encoded_key).kind() + \ 
    ' WHERE __key__ = ' + encoded_key) 

하지만 가능한 경우 GQL을 사용하지 않을 것입니다. GQL을 사용하지 않고 객체를 가져 오는 방법이 있습니까?

+1

이와 같이 GQL 쿼리를 작성하는 것은 매우 나쁜 생각입니다. 이를 수행 할 필요가 없도록 매개 변수 (: 1, : 2 등)가 제공됩니다. –

+0

감사합니다. Nick. 알아, 이건 그냥 상용구 코드, 나는 처음부터 GQL을 사용하고 싶지 않았어. –

답변

3

그냥 str(key)의 결과를 memcached에 저장 하시겠습니까? 그렇다면 다시 가져올 때 db.get(key)을 사용하여 가리키는 항목을 가져올 수 있습니다.

db.get()db.Key 개체 또는 db.Key 개체 (또는 키 또는 키 문자열 목록)의 문자열 표현 중 하나를 사용합니다.

+0

네, 고마워요! API 문서를 읽는 동안이 유용한 정보를 놓쳤을 것입니다. –

관련 문제