[Django] Query set

Choi Rim·2021년 7월 18일
0

Django

목록 보기
6/21
post-thumbnail

Query set

Query set 이란

  • Database에서 전달받은 모델의 객체 목록
  • Query set은 데이터베이스로부터 데이터를 읽고, 필터를 걸거나 정렬을 하거나 할 수 있다.

Query set method

  • python shell에서 진행한다.
from products.models import Menu
  • 먼저 model의 class를 import 해 온다.

Methods That Don't Return QuerySet

get()

In [4]: Menu.objects.get(id=1)
Out[4]: <Menu: Menu object (1)>
  • 지정된 조회 매개 변수와 일치하는 인스턴스를 반환한다.

create()

In [5]: Menu.objects.create(name="책")
Out[5]: <Menu: Menu object (6)>
  • create()를 통해 table에 데이터를 추가할 수 있다.
  • 생성된 인스턴스를 반환한다.

delete()

In [6]: Menu.objects.filter(name="책").delete()
Out[6]: (1, {'products.Menu': 1})
  • 원하는 column을 선택해 삭제할 수 있다.
  • 삭제 된 개체 수와 개체 유형별 삭제 횟수가 있는 dictionary를 반환한다.

Methods That Return QuerySets

all()

In [7]: Menu.objects.all()
Out[7]: <QuerySet [<Menu: Menu object (1)>, <Menu: Menu object (2)>, <Menu: Menu object (3)>, <Menu: Menu object (4)>, <Menu: Menu object (5)>]>
In [8]: for menu in Menu.objects.all():
   ...:     print(menu.name)
   ...: 
음료
푸드
상품
카드
메뉴 이야기
  • 원하는 테이블의 모든 객체를 가져온다.
  • Query set을 반환한다.
    • Query set에는 각 각의 인스턴스가 포함되어 있다.
    • 모든 속성에 접근해서 데이터를 관리 할 수 있다.

filter()

In [9]: Menu.objects.filter(name="음료")
Out[9]: <QuerySet [<Menu: Menu object (1)>]>
  • 특정 record를 filter()을 이용해 가져올 수 있다.

values()

In [10]: Menu.objects.filter(name="음료").values()
Out[10]: <QuerySet [{'id': 1, 'name': '음료'}]>
  • 인스턴스가 아닌 dictionary 형태의 QuerySet 을 반환한다.

<참고>

profile
https://rimi0108.github.io/

0개의 댓글