Inserindo várias instâncias modelo usando um único db.put () no Google App Engine

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

  •  03-07-2019
  •  | 
  •  

Pergunta

Editar:. Desculpe eu não esclarecer isso, é uma questão relacionada com o Google App Engine

De acordo com a este , posso dar db. put () uma lista de instâncias de modelo e pedir-lhe para introduzir-los todos em armazenamento de dados. No entanto, eu não tenho sido capaz fazer isso com sucesso. Eu ainda sou um pouco novo com Python, para ir fácil em mim

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)

Poderia alguém apontar onde eu estou indo errado?

Foi útil?

Solução

Por favor, defina o que você quer dizer com "indo mal" - os pequenos pedaços de código que você está mostrando poderiam perfeitamente fazer parte de um aplicativo que é bastante "direito". Considere por exemplo:.

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)

isso faz inserir as duas entidades correctamente de cada vez que o método get é chamado, por exemplo, se um aplicativo de exemplo continua com:

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


if __name__ == '__main__':
  main()

como em um "Olá mundo" app típico app engine. Você pode verificar a adição correta de ambas as entidades com o visualizador de armazenamento de dados da consola SDK, ou, claro, adicionando outro manipulador que recebe as entidades trás e mostra-lhes, etc etc.

Então, por favor, esclareça!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top