Вставка нескольких экземпляров модели с помощью одного db.put() в Google App Engine
-
03-07-2019 - |
Вопрос
Редактировать: Извините, я не уточнил это, это вопрос, связанный с Google App Engine.
В соответствии с этот, я могу передать db.put() список экземпляров модели и попросить его ввести их все в хранилище данных.Однако мне не удалось сделать это успешно.Я все еще немного новичок в Python, так что будьте поосторожнее со мной.
list_of_models = []
for i in range(0, len(items) - 1):
point = ModelName()
... put the model info here ...
list_of_models.append(point)
db.put(list_of_models)
Может ли кто-нибудь указать, где я ошибаюсь?
Решение
Пожалуйста, определите, что вы подразумеваете под «неправильно» — крошечные фрагменты кода, которые вы показываете, вполне могут быть частью вполне «правильного» приложения.Рассмотрим, например:
class Hello(db.Model):
name = db.StringProperty()
when = db.DateTimeProperty()
class MainHandler(webapp.RequestHandler):
def get(self):
self.response.out.write('Hello world!')
one = Hello(name='Uno', when=datetime.datetime.now())
two = Hello(name='Due', when=datetime.datetime.now())
both = [one, two]
db.put(both)
это вставляет два объекта правильно каждый раз, когда вызывается метод get, например, если пример приложения продолжает:
def main():
application = webapp.WSGIApplication([('/', MainHandler)],
debug=True)
wsgiref.handlers.CGIHandler().run(application)
if __name__ == '__main__':
main()
как в типичном приложении движка приложений «Hello World».Вы можете проверить правильность добавления обоих объектов с помощью средства просмотра хранилища данных консоли SDK или, конечно, добавив другой обработчик, который возвращает объекты и показывает их и т. д. и т. п.
Поэтому, пожалуйста, уточните!