У меня есть объект "Расчет" в моем хранилище данных, скажем, 7 миллионов объектов под этим объектом. Он имеет следующие свойства (время выполнения python):
class Calculation(db.Model):
question = db.StringProperty(required=True)
answer = db.StringProperty()
предположим, что примерами свойства "вопрос" являются такие вещи, как "1 + 1", "2 + 2", "3 + 3" (не очень важно). Все объекты вычислений начинаются с пустых свойств ответа.
Когда пользователь подключается к приложению, выполняется ajax-вызов, и мое приложение должно [1] извлекать объект Calculation с пустым свойством answer и отправлять его в браузер пользователя. Затем пользовательский браузер оценивает вопрос и отправляет его другому обработчику сервера.
Как обновить указанное свойство ответа объекта вычисления [2]?
Если бы кто-то мог предоставить мне код для [1] и [2], это было бы здорово. Не очень опытен с App Engine, и материал запроса запутан. Каково наилучшее решение для этого, если я хочу сохранить как можно больше серверных процессоров?
Благодарю!
Я не знаю, действительно ли я это понимаю. Но вам просто нужно вернуть для вашего первого вызова ajax ключ объекта Calculation и question
. Когда пользователь делает ответ, вы сначала получаете объект по ключу и обновляете answer
свойства.
Шаг 1, вызов ajax возвращает вопрос в JSON (например):
# To fetch an empty answered question
qry = Calculation.All().filter('answer =', None)
ref = qry.get()
# The Json response
{ 'key': unicode(ref.key()),
'question': ref.question}
Шаг 2: Вы обновляете объект по ключу:
# key and answer are variable from an http GET or POST request.
ref = db.get(key)
ref.answer = answer
ref.put()
None
.