QuerySet , 객체 정의

인간·2022년 7월 31일
0

QuerySet이란?

Database에서 전달받은 모델의 객체 목록(list)이자, DB(SQL)에서는 row를 의미
Python으로 작성한 코드가 SQL로 mapping되어 QuerySet이라는 자료 형태로 값이 넘어온다
queryset 의 특이한 점은 Lazy 한 특성을 가지고 있다는 것!!!

따라서, 실제 데이터를 가져오려면(fetch), QuerySet을 iterate시켜야 함.

QuerySet Method

QuerySet안에 있는 객체에 접근할 때에는 value에 접근하는지, dictionary의 요소에 접근하는지 등에 따라서 접근 방식이 다릅니다.

Account라는 클래스가 있다고 가정하고 사용하여 보겠습니다.

Account.odjects.all()

모든 객체(데이터)를 리스트 형태로 return
<variable name>[index]로 접근이 가능
Account.objects.filter()

특정 데이터로 필터링해서 가져옴
인자로는 필드명=조건값 이 들어가며 2개 이상 들어갈 경우, 두 조건을 and로 묶어줌
<variable name>[index]로 접근이 가능
Account.objects.values()

쿼리셋의 내용을 딕셔너리로 각 객체정보를 갖는 리스트 형태로 반환
QuerySet()은 리스트이고, 객체는 dictionary 이므로 <variable name>[index]['key'] 형식으로 value값에 접근이 가능
Account.objects.exclude()

filter 와 상반되는 개념으로, 필드명=조건값 으로 들어오는 인자를 제외한 나머지 값들을 가져옴

Account.odjects.get(id = 1)

필드명 = 조건값 를 인자로 가지며, 해당 하는 데이터가 유일하게 존재해야함.
0개이거나 2개 이상이면 에러가 발생.
해당 요소가 없을 때는, DoesNotExist 에러 발생!
하나의 객체로 반환되므로 .으로 접근 가능
profile
잇츠미

0개의 댓글