Inserimento di più istanze del modello utilizzando un singolo db.put () su Google App Engine

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

  •  03-07-2019
  •  | 
  •  

Domanda

Modifica: mi dispiace non aver chiarito questo, si tratta di una domanda relativa a Google App Engine.

Secondo questo , posso dare db. mettere () un elenco di istanze del modello e chiedergli di inserirle tutte nell'archivio dati. Tuttavia, non sono stato in grado di farlo con successo. Sono ancora un po 'nuovo con Python, quindi andate piano con me

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)

Qualcuno potrebbe indicare dove sto sbagliando?

È stato utile?

Soluzione

Definisci cosa intendi per "errato". - i minuscoli frammenti di codice che stai mostrando potrebbero benissimo far parte di un'app che è abbastanza "giusta". Considera ad esempio:

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)

questo inserisce correttamente le due entità ogni volta che viene chiamato il metodo get, ad esempio se un'app di esempio continua con:

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


if __name__ == '__main__':
  main()

come in un tipico "ciao mondo" app motore app. Puoi verificare l'aggiunta corretta di entrambe le entità con il visualizzatore di archivi di dati della console sdk, o ovviamente aggiungendo un altro gestore che recupera le entità e le mostra, ecc. Ecc.

Quindi, per favore, chiarisci!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top