개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.
2월 11일(금)
Django Queryset API
1. QuerySet이 반환되는 Model Method
- all()
한 테이블의 모든 레코드를 가져오려면 아래와 같이 all() method를 사용하면 된다.
all() 함수를 사용하면 그 결과로 QuerySet을 반환하며, 이 때의 QuerySet 안에는 각각의 인스턴스가 포함된다.
아래와 같이 all() 함수를 사용하면 인스턴스들이 담겨 있는 QuerySet이 반환되기 때문에, 모든 속성에 접근해서 데이터를 관리할 수 있다.
- filter() & exclude()
한 테이블의 특정 레코드를 가져오려면 filter() 함수와 exclude() 함수를 사용하면 된다.
filter() 함수와 exclude() 함수의 인자를 키워드인자(**kwargs)로 넣으면, 주어진 lookup 조건에 일치하는 레코드들의 QuerySet을 반환한다.
- values()
values() 함수는 iterable로 사용될 때 모델 인스턴스가 아닌 dictionary를 포함하는 QuerySet을 반환한다.
- values_list()
values_list() 함수는 iterable로 사용될 때 dictionary를 포함하는 QuerySet을 반환하는 대신 tuple을 포함하는 QuerySet을 반환한다는 점에서 valus() 함수와 매우 유사하다.
2. QuerySet이 반환되는 않는Model Method
- create()
create() 함수는 Table에 데이터를 추가(INSERT) 해주는 method로 생성된 인스턴스를 반환한다.
- get()
get() 함수는 지정된 조회 매개변수와 일치하는 인스턴스를 반환한다. 이 때, 매개변수는 필드 조회에 설명된 형식과 동일해야 한다.
- update()
update() 함수는 지정된 필드에 대해 업데이트 쿼리를 수행하고 일치하는 행의 수를 반환한다.
- delete()
delete() 함수는 QuerySet의 모든 행에 대해 SQL 삭제 쿼리를 수행하고 삭제된 개체 수와 개체 유형별 삭제횟수가 있는 dictionary를 반환한다.
- save()
save() 함수는 INSERT 또는 UPDATE를 수행하는 method로, 단일 객체에 대해서 업데이트를 수행할 때 많이 사용된다.
- exists()
exists() 함수는 filter() 함수와 함께 사용해서 filter 조건에 맞는 데이터가 있는지 조회하고, 만약 존재하면 True 존재하지 않으면 False를 반환한다.
'기타' 카테고리의 다른 글
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 |
댓글