#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, для обработки и очистки вашего ввода и создания объектов вручную из обработанных данных.