2013-10-27 1 views
0

Можно ли разобрать Google объект App Engine, как так ...синтаксического анализа объекта Google App Engine в Python

objects = db.GqlQuery('SELECT * FROM Database WHERE item='random'') 
memcache.add('object', objects, 3600) 
if object =='some condition': 
    #here can I do a query on 'objects' without using GqlQuery 
elif object =='something else': 
    #do a different query than the one above 

Идея заключается в том, чтобы сохранить объект в кэше, а затем манипулировать этим объектом по-разному. Это делается для облегчения чтения данных хранилища данных. Заранее спасибо!

ответ

2

Вы можете и каждый найдет, что они это сделают. Однако есть множество вещей, которые вам нужно учитывать.

  1. На данный момент вы пытаетесь сохранить объект запроса, а не результаты в memcache. objects в вашем коде - это объект запроса. Используйте run, fetch и т. Д., Чтобы получить некоторые результаты.

  2. Управление объектами и хранение в memcache без записи будет означать, что вы потеряете данные и т. Д. Memcache не является надежным механизмом хранения appengine (это всего лишь кеш), и все может быть выселено в любое время.

  3. Если ваш запрос предназначен для возврата одного результата, получить объект по ключу, он намного эффективнее и не намного медленнее, чем memcache, по сравнению с запросом. (Кэш NDB будет получает для вас - смотрите следующий пункт)

  4. Похоже, что вы начинаете с AppEngine, если у вас нет существующего кода базы, начать с ndb, а не db. Это, на мой взгляд, лучшая библиотека. ndb делает много кэширования для вас (при использовании get()) в memcache и request/instance.

+0

спасибо, я обязательно посмотрю на ndb! – mrmo123

Смежные вопросы