Заполнить объект из запроса в GAE

#python #google-app-engine

#python #google-app-engine

Вопрос:

Я знаю, что могу использовать формы django, но я ищу собственный (gae api) способ заполнения объекта данными запроса.

Что-то вроде этого:

 from google.appengine.ext import db

class MyModel(db.Model)
    prop1 = db.StringProperty()
    prop2 = db.StringProperty()
  

и в обработчике запроса

 class Page(webapp.RequestHandler):

    def post(self):
        mymodel = MyModel(self.request)
  

заранее спасибо

Ответ №1:

Вы могли бы попробовать этот способ, который работает для меня:

 mymodel = MyModel(prop1=self.request.get('prop1'))
  

если у a есть форма с полем, подобным следующему

 <input type="text" name="prop1"  />
  

Я надеюсь, у вас это сработает.

Ответ №2:

То, что вы обычно ищете, — это библиотека форм с интеграцией хранилища данных. Раньше мы предоставляли его в среде выполнения 2.5, но для версии 2.7 он устарел (и не предоставляется по умолчанию), поскольку в нем есть ряд проблем. Главным из них является то, что вы редко хотите, чтобы ваша сущность содержала только то, что отправил пользователь, и обычно хотите указать некоторые значения самостоятельно. Сделать это с большинством библиотек forms сложно, особенно если вы хотите преобразовать или иным образом модифицировать предоставленное пользователем поле.

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