Inserindo várias instâncias modelo usando um único db.put () no Google App Engine
-
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?
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!