Google App Engine에서 단일 DB.put ()을 사용하여 여러 모델 인스턴스 삽입

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

  •  03-07-2019
  •  | 
  •  

문제

편집하다: 이것을 명확히하지 못해서 죄송합니다. Google App Engine 관련 질문입니다.

에 따르면 이것, 나는 db.put ()에게 모델 인스턴스 목록을 제공하고 데이터를 모두 입력하도록 요청할 수 있습니다. 그러나 나는 이것을 성공적으로 할 수 없었습니다. 나는 아직도 파이썬이 조금 새로워 져서 쉽게 가세요

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)

내가 어디로 가고 있는지 지적 할 수 있습니까?

도움이 되었습니까?

해결책

"잘못 가고있는"의미를 정의하십시오 - 당신이 보여주는 작은 코드 조각은 "올바른"앱의 일부가 될 수 있습니다. EG를 고려하십시오 :

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)

예를 들어 샘플 앱이 계속되면 메소드를 호출 할 때마다 두 엔티티를 올바르게 삽입합니다.

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


if __name__ == '__main__':
  main()

일반적인 "Hello World"앱 엔진 앱에서와 같이. SDK 콘솔의 Datastore 뷰어와 함께 두 엔티티의 올바른 추가를 확인하거나 물론 엔티티를 다시 가져 와서 표시하는 다른 핸들러를 추가하여 엔터티 등을 표시 할 수 있습니다.

그러니 명확히 해주세요!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top