스택큐힙리스트

장고 모델() 대 Model.objects.create() 본문

카테고리 없음

장고 모델() 대 Model.objects.create()

스택큐힙리스트 2023. 4. 3. 13:59
반응형

두 개의 명령어를 실행하는 것과 하나의 명령어를 실행하는 것의 차이점은 무엇인가요?

foo = FooModel()

그리고

bar = BarModel.objects.create()

두 번째 것은 즉시 데이터베이스에 BarModel 를 생성하나, 첫 번째 것은 save() 방법을 불러와야 데이터베이스에 추가됩니까?

답변 1

https://docs.djangoproject.com/en/stable/topics/db/queries/#creating-objects

하나의 단계로 객체를 생성하고 저장하려면 create() 메소드를 사용하세요.

답변 2

[Django Model()와 Model.objects.create()의 차이점]

Django는 Python 기반의 Web 프레임워크로, Model을 통해 데이터베이스와 상호작용할 수 있습니다. 이번에는 Django Model()와 Model.objects.create()의 차이점에 대해 알아보겠습니다.

먼저 Django Model()은 객체를 생성하는 메서드입니다. 이를 사용하면 데이터베이스에 저장하기 전에 객체 인스턴스를 생성하고 해당 속성 값을 지정할 수 있습니다. 이후 save() 메서드를 호출하여 데이터베이스에 저장합니다. 이 과정에서, save() 메서드가 작동하기 전까지는 데이터베이스에 저장되지 않습니다.

반면, Model.objects.create()는 객체를 생성하고 해당 객체를 데이터베이스에 저장하는 메서드입니다. 이를 사용하면 객체를 생성하는 과정과 저장하는 과정을 한 번에 처리할 수 있습니다. 이를 사용하면 DB 호출이 한 번만 발생하여 성능을 개선할 수 있습니다. 또한 이를 사용하면 객체 저장이 완료된 후에 생성된 객체 인스턴스를 반환합니다.

따라서, Django Model()과 Model.objects.create()의 주요 차이점은 객체 생성과 저장의 과정입니다. Django Model()은 객체 생성과 속성 값 설정 후, save() 메서드를 통해 저장하는 과정을 거치고, Model.objects.create()은 객체 생성과 동시에 저장하는 과정을 거칩니다.

모델과 객체 조작은 Django의 필수 기능 중 하나입니다. 우리는 다양한 방식으로 모델을 조작할 수 있으며, 이를 통해 내가 만들고자 하는 프로젝트를 더욱 완성도 있게 만들 수 있습니다. 따라서 이번에 소개한 Django Model()과 Model.objects.create()의 차이점을 이해하고, 그것을 유기적으로 활용하여 우리의 프로젝트를 더욱 높은 수준으로 만들어 보시기 바랍니다.

반응형
Comments