Django 쿼리셋 조작 명령어들

gandalfzzing·2020년 5월 31일
0

django

목록 보기
2/2

객체반환

get(조건) : 키워드 인자로 데이트를 찾고, 있으면 그 데이터의 인스턴스 객체반환. 없으면 DoesNotExist라는 예외를 일으킨다.
count() : 데이터의 개수 반환
first() :첫번째 객체 반환
last() :마지막 객체 반환
update() :지정한 필드만 갱신(일부 데이터만 변경하더라도 save()로 저장하면 모델의 필드 전체 변경.
(uppdate를 이용할 경우 변경된 필드만 업데이트)
delete() : 데이터베이스 삭제
get_or_create(조건, deaults=생성할 데이터의 값) : 없으면 생성
update_or_create(조건, default=생성할 데이터의 값) : 업데이트하거나 없으면 생성

queryset 반환

all() : 모든 데이터를 queryset으로 반환
filter(조건) : 조건식으로 데이터를 찾는다.
exclude(조건) : 조건에 일치 하지 않는 데이터

order_by(정렬필드) : 지정한 필드를 기준으로 오른차순정렬. 내림차순은 '-'를 붙여주면된다.
=>위의 메서드들 뒤에 [시작위치:끝위치]를 덧붙이면 범위 안의 데이터만 가져온다.
distinct(필드이름) : 필드 이름이 같은 것이 있다면 곁치지 않게 가져오기

쿼리셋은 조건을 .을 이용하여 덧 붙일 수 있다.

탐색 조건들

필드명 뒤에 __를 붙여서 같이 작성한다.

-exact : 정확히 같은 데이터를 탐색
-iexact: 대소문자 무시하고 같은 데이터 탐색
-contains : 지정한 문자열을 포함하는 데이터 탐색
-icontains: 대소문자 무시하고..
-in : 리스트나 튜플 자료형이 있는 값들에 해당하는 데이터 탐색
-gt : 지정한 값을 초과하는 데이터(greater than)
-gte :지정한 데티어 이상
-lt : 지정한 값미만 (less than)
-lte :지정한 값 이하
-startswith :지정한 문자열로 시작하는 데이터
-istartswith : 대소문자 무시하고...
-endswith :지정한 문자열로 끝나는
-iendswith : 대소문자 무시하고...
-range : 범위에 해당하는 데이터 탐색. 리스트나 튜플로 지정
ex)import datetime
start_date = datetime(2005, 1, 1)
end_date = datetime(2005,3, 31)
Photo.objects.filter(pub_daterange=(start_date, end_date)
-year : dateField와 DateTimeField와 대응하여 지정년도의 데이터탐색
ex)
Photo.objects.filter(created_at
year=2014)
-month :지정한 월
-week_day : 지정한 요일. 1은 일요일 7은 토요일
-hour, minute, secoond: 시,분, 초 지정
-isnull : null 인 데이터 탐색(true 와 False 지정)
-search : contains와 비슷하지만 데이터베이스의 full-text indexing을 이용하여 좀더 빠르게 처리
-regex : 정규 표현식으로 데이터 탐색
-iregex: 대소문자 무시하고 ...

[출처][Model]장고의 모델 쿼리 메소드 알아보기|작성자 호떵

0개의 댓글