Google App Engine에서 단일 DB.put ()을 사용하여 여러 모델 인스턴스 삽입
-
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 뷰어와 함께 두 엔티티의 올바른 추가를 확인하거나 물론 엔티티를 다시 가져 와서 표시하는 다른 핸들러를 추가하여 엔터티 등을 표시 할 수 있습니다.
그러니 명확히 해주세요!
제휴하지 않습니다 StackOverflow