본문 바로가기
기타

TIL - 22.02.11

by DGK 2022. 2. 11.

 

개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.

 

2월 11일(금)

 

Django Queryset API


1. QuerySet이 반환되는 Model Method

 

  • all()

한 테이블의 모든 레코드를 가져오려면 아래와 같이 all() method를 사용하면 된다.

all() 함수를 사용하면 그 결과로 QuerySet을 반환하며, 이 때의 QuerySet 안에는 각각의 인스턴스가 포함된다.

아래와 같이 all() 함수를 사용하면 인스턴스들이 담겨 있는 QuerySet이 반환되기 때문에, 모든 속성에 접근해서 데이터를 관리할 수 있다.

 

all() 함수 예시

 

 

  • filter() & exclude()

한 테이블의 특정 레코드를 가져오려면 filter() 함수와 exclude() 함수를 사용하면 된다.

filter() 함수와 exclude() 함수의 인자를 키워드인자(**kwargs)로 넣으면, 주어진 lookup 조건에 일치하는 레코드들의 QuerySet을 반환한다.

 

filter() 함수 예시

 

filter() 함수와 exclude() 함수 비교

 

 

  • values()

values() 함수는 iterable로 사용될 때 모델 인스턴스가 아닌 dictionary를 포함하는 QuerySet을 반환한다.

 

values() 함수 예시

 

 

  • values_list()

values_list() 함수는 iterable로 사용될 때 dictionary를 포함하는 QuerySet을 반환하는 대신 tuple을 포함하는 QuerySet을 반환한다는 점에서 valus() 함수와 매우 유사하다.

 

values_list() 함수 예시

 

 

2. QuerySet이 반환되는 않는Model Method

 

  • create()

create() 함수는 Table에 데이터를 추가(INSERT) 해주는 method로 생성된 인스턴스를 반환한다.

 

create() 함수 예시

 

 

  • get()

get() 함수는 지정된 조회 매개변수와 일치하는 인스턴스를 반환한다. 이 때, 매개변수는 필드 조회에 설명된 형식과 동일해야 한다.

 

 get() 함수 예시

 

 

  • update()

update() 함수는 지정된 필드에 대해 업데이트 쿼리를 수행하고 일치하는 행의 수를 반환한다.

 

update() 함수 예시

 

 

  • delete()

delete() 함수는 QuerySet의 모든 행에 대해 SQL 삭제 쿼리를 수행하고 삭제된 개체 수와 개체 유형별 삭제횟수가 있는 dictionary를 반환한다.

 

delete() 함수 예시

 

 

  • save()

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

 

save() 함수 예시

 

 

  • exists()

exists() 함수는 filter() 함수와 함께 사용해서 filter 조건에 맞는 데이터가 있는지 조회하고, 만약 존재하면 True 존재하지 않으면 False를 반환한다.

 

exists() 함수 예시

 

 

'기타' 카테고리의 다른 글

TIL - 22.02.15  (0) 2022.02.16
TIL - 22.02.14  (0) 2022.02.14
TIL - 22.02.10  (0) 2022.02.10
TIL - 22.02.09  (0) 2022.02.09
TIL - 22.02.08  (0) 2022.02.08

댓글