2014-02-01 5 views
0

Я работаю над реализацией небольшого онлайн-опроса с использованием движка Google. Я уже сделал опрос сам. Теперь мне нужна возможность хранить все материалы от лица, участвующего в этом опросе в базе данных.Google app engine: создание объекта хранилища данных из данных post

Прямым способом достижения этого было бы создание объекта с собственностью для каждого из входов и создания такого объекта каждый раз, когда человек отправляет заполненное обследование.

Поскольку у меня есть около 30 входов в моем опросе, я хотел бы знать, есть ли более элегантный или, по крайней мере, менее утомительный способ превратить данные в почтовом запросе в объект хранилища данных.

спасибо.

ответ

2

WTForms имеет расширение GAE, которое может использоваться для создания форм из моделей и моделей из форм.

С WTForms, ваше поле формы HTML может быть создан для вас, но мы позволяют настроить его в шаблонах. Это позволяет поддерживать разделение кода и презентации и сохранять эти беспорядочные параметры из вашего кода на Python. Поскольку мы стремимся к свободному соединению, вы должны иметь возможность делать это в любом шаблоном двигателя, который вам нравится.

http://wtforms.simplecodes.com/docs/1.0.2/ext.html

wtforms.ext.appengine.db.model_form(model, base_class=Form, only=None, exclude=None, field_args=None, converter=None) 

Создает и возвращает динамический класс wtforms.Form для данного db.Model класса. Класс формы может использоваться как он или служить базой для классов расширенной формы , которые затем могут смешивать немодельные связанные поля, подформы с другими формами моделей, среди прочих возможностей.

Создание модели, основанной на форме, включает в себя создание объекта формы, а затем передачу данных POST.

http://wtforms.readthedocs.org/en/latest/forms.html#the-form-class

formdata - Используется для передачи данных, поступающих от конечного пользователя, как правило, request.POST или эквивалент. formdata должен быть своего рода оболочкой запроса-данных, которая может получить несколько параметров из формы ввода , а значения - строки Юникода, например. Werkzeug/Django/WebOb MultiDict

И есть аналогичный вопрос здесь: WTForms error:TypeError: formdata should be a multidict-type wrapper

например

def post(self): 
    form = model_form(Ticket) 
    form_object = form(formdata=self.request.POST) 

from some random example I just found.

+0

Только учтите, что если вы ожидаете, чтобы сделать статистику с ответами (средние, суммы и т.д. от значения столбца), вы можете быть лучше использовать облако SQL вместо хранилища данных. В противном случае вам придется иметь дело с агрегированием данных вручную и с длинными результатами (тайм-аут от переднего конца при его обработке и т. Д.) –

+0

@Paul Collingwood. Хорошо, спасибо.Если я правильно ее понимаю, model_form используется для создания формы из модели Datastore. Что мне нужно сделать, чтобы сделать это наоборот? (Создание сущности из опубликованных данных) – fedorSmirnov

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