TIL 10. Django_Query Set model method(QuerySet이 반환되지 않는 경우)

Drageon Lee·2021년 10월 24일
0

TIL_Django

목록 보기
2/8
post-thumbnail

Today's topic

👉 자주 사용되는 Query Set model method의 종류 및 특징

1️⃣ QuerySet이 반환되는 경우의 주요 method(이전 편에서)
2️⃣ QuerySet이 반환되지 않는 경우의 주요 method
3️⃣ filter()와 get()의 차이점(다음 편에서)

2️⃣ QuerySet이 반환되는 경우의 주요 method

  • create()
    해당 method는 table에 data를 추가하는 method로 생성된 instace를 반환해 줌. category 변수에 반환된 값을 저장하고 생성된 data를 사용할 수 있으며, 인스턴스로 반환되므로 category.name으로 class 안에 변수에 접근할 수 있음.

    In  : In  : Category.objects.create(name='콜드브루')
    Out : <Category: Category object (1)>
    In  : category = Category.objects.create(name='콜드브루')
    In  : category.name
    Out : '콜드브루'
    참고) save method : INSERT 또는 UPDATE
         Category(name='콜드브루').save()
  • get()
    매개 변수와 일치하는 instance를 불러올 때 사용됨.

    In  : Category.objects.get(id=1)
    Out : <Category: Category object (1)>
  • update()
    지정된 필드에 대해 업데이트 쿼리를 수행하고 일치하는 행 수를 반환함.
    (일부 행에 이미 새 값이있는 경우 업데이트 된 행 수와 같지 않을 수 있음).

    In  : Category.objects.filter(name='탄산').update(name='콜드브루')
    Out : 2 #총 업데이트된 row 개수

  • delete()
    QuerySet의 모든 행에 대해 SQL 삭제 쿼리를 수행하고 삭제 된 개체 수와 개체 유형별 삭제 횟수가 있는 dictionary를 반환함.
    In  : Category.objects.filter(name='qp').delete()
    Out : (1, {'products.Category': 1})

  • save()
    INSERT 또는 UPDATE 를 수행하는 method로, 단일 객체에 대해서 업데이트를 수행할 때 많이 사용됨.

    In  : category = Category.objects.get(id=2)
    Out : <Category: Category object (2)>
    In  : category.name
    Out : '브루드커피'
    In  : category.name = 'new name'
    In  : category.save()
    In  : category.name
    Out : 'new name'
  • exists()
    filter()와 함께 서용해서 filter 조건에 맞는 데이터가 있는지 조회, 존재하면 True 존재하지 않으면 False를 반환함.

    In  : Category.objects.filter(name='브루드커피').exists()
    Out : True

My opinion

QuerySet이 반환되지 않는 경우에 대해 주요 method에 대해 알아보았다. 해당 method들은 QuerySet이 반환되는 method와 다루는 방법에 차이가 있었다. 특히 filter()와 get() method 사이에서 두 method 다 특정 변수를 가진 data를 불러오는 역할인데, data를 얻을 수 있는 방법이 달랐다. 다음 편에서 이 차이에 대해 언급해 볼 것이다!

profile
운동하는 개발자

0개의 댓글

관련 채용 정보