Insertion de plusieurs instances de modèle à l'aide d'un seul fichier db.put () sur Google App Engine

StackOverflow https://stackoverflow.com/questions/803517

  •  03-07-2019
  •  | 
  •  

Question

Modifier: Je regrette de ne pas avoir clarifié cette question. Il s'agit d'une question relative à Google App Engine.

Selon ceci , je peux donner db. put () une liste d'instances de modèles et demandez-lui de toutes les entrer dans le magasin de données. Cependant, je n'ai pas été capable de le faire avec succès. Je suis encore un peu nouveau avec Python, alors vas-y doucement sur moi

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)

Quelqu'un pourrait-il indiquer où je me trompe?

Était-ce utile?

La solution

Veuillez définir ce que vous entendez par "aller de travers". - les minuscules morceaux de code que vous montrez pourraient parfaitement faire partie d'une application qui est tout à fait "juste". Considérez par exemple:

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)

Ceci insère correctement les deux entités à chaque appel de la méthode get, par exemple si un exemple d'application continue avec:

def main():
  application = webapp.WSGIApplication([('/', MainHandler)],
                                       debug=True)
  wsgiref.handlers.CGIHandler().run(application)


if __name__ == '__main__':
  main()

comme dans un "bonjour monde" typique app engine app. Vous pouvez vérifier l'ajout correct des deux entités avec la visionneuse de magasin de données de la console sdk ou bien sûr en ajoutant un autre gestionnaire qui récupère les entités et les affiche, etc.

.

Alors s'il vous plaît clarifiez!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top