Django C.R.U.D (1) (2팀) 과제

Jeongyun Heo·2021년 1월 24일
0
post-thumbnail

all() vs values()

all()과 values() 모두 테이블의 데이터 모두 조회할 때 사용한다.

all()을 사용하면 QuerySet 객체가 반환되는데 1번 객체, 2번 객체 이런 식으로 id만 나오고 객체에 대한 자세한 정보는 나오지 않는다.

>>> Category.objects.all()
<QuerySet 
[<Category: Category object (1)>, 
<Category: Category object (2)>, 
<Category: Category object (3)>, 
<Category: Category object (4)>, 
<Category: Category object (5)>, 
<Category: Category object (6)>]>

values()를 사용해도 QuerySet 객체가 반환되는데 딕셔너리로 key=value 형태로 나온다. 속성 값을 모두 보여준다.

>>> Category.objects.values()
<QuerySet [{'id': 1, 'name': '콜드 브루 커피', 'menu_id': 1}, {'id': 2, 'name': '브루드 커피', 'menu_id': 1}, {'id': 3, 'name': '에스프레소', 'menu_id': 1}, {'id': 4, 'name': '프라푸치노', 'menu_id': 1}, {'id': 5, 'name': '블렌디드', 'menu_id': 1}, {'id': 6, 'name': '스타벅스 피지오', 'menu_id': 1}]>

get() vs filter()

get()과 filter()도 데이터를 조회하는 함수이다.

get()을 사용하면 객체를 리턴하며 데이터 하나만 조회할 수 있다.

>>> Category.objects.get(id=1)
<Category: Category object (1)>

filter()를 사용하면 QuerySet을 반환하며 여러 개의 데이터를 조회할 수 있다.

>>> Category.objects.filter(menu_id=1)
<QuerySet 
[<Category: Category object (1)>, 
<Category: Category object (2)>, 
<Category: Category object (3)>, 
<Category: Category object (4)>, 
<Category: Category object (5)>, 
<Category: Category object (6)>]>

create() vs save()

create()와 save() 모두 테이블의 데이터를 만들 때 사용한다.

create를 쓰면 한 줄이면 간편하게 생성할 수 있는데

>>> Category.objects.create(name="콜드 브루 커피", menu_id=1)
<Category: Category object (1)>

save()는 변수를 새로 만들어서 저장해줘야 된다.
마지막에 save()를 해줘야 데이터베이스에 데이터가 저장된다.

>>> c2 = Category(name="브루드 커피", menu_id=1)
>>> c2
<Category: Category object (None)>  # save 안 해줘서 None으로 뜸
>>> c2.save()
>>> c2
<Category: Category object (2)>

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN