장고 메소드

2023. 3. 3. 11:28개발/토막난 상식

반응형

 

all() 테이블 모든 데이터 셋 가져오기
filter() 특정 조건에 부합하는 데이터셋 가져오기
exclude() 특정 조건을 제외한 데이터셋 가져오기
get() 특정 조건에 부합하는 1개의 데이터 가져오기
count() 가져올 데이터의 개수 가져오기
first() 첫번째 데이터 가져오기
last() 가장 마지막 데이터 가져오기
exists() 데이터 유무에 대한 결과(True, False)를 가져오기
order_by() 특정 필드 순서대로 정렬

 

1. filter() 응용

1-1. exact

일치하는 조건을 입력할 때 사용

Boards.objects.filter(title__excact='ㅁㄴㅇ')
Boards.objects.filter(title__iexcact='ㅁㄴㅇ')
 # iexact는 대소문자를 가리지 않고 일치하는 조건
  • 언더바 두개 (__)
    -조건을 사용할 경우
    -외부 모델 필드를 사용할 경우

1-2. contains

부분 일치 조건 입력할 때 사용

Boards.objects.filter(title__contains='ㅁㄴㅇ')
Boards.objects.filter(title__icontains='ㅁㄴㅇ')
 # icontains는 대소문자를 가리지 않고 부분 일치하는 조건

1-3. in

여러 조건을 포함할 경우 사용

Boards.objects.filter(title__in=['ㅁㄴㅇ','ㄴㅇㄹ'])

1-4. gt / lt / gte / lte

gt (greater than) : >
lt (less than) : <
gte (greater than or equal) : >=
lte (less than or equal) : <=

Boards.objects.filter(registered_date__gt=datetime.date(2023.10.04)
Boards.objects.filter(registered_date__lt=datetime.date(2023.10.04)

1-5. startswith / endswith

startswith : 조건으로 시작하는 문자열 검색
endswith : 조건으로 끝나는 문자열 검색

Boards.objects.filter(title__startswith="book")

1-6. union

두 개 이상의 쿼리셋 변수를 하나의 쿼리셋 값으로 합친다.

data1 = Boards.objects.filter(title__exact="ㅁㄴㅇ")
data2 = Boards.objects.filter(title__exact="ㄴㅇㄹ")
data3 = union(data1, data2)

1-7. intersection()

교집합으로 두 개 이상의 쿼리셋 변수 중 중복된 값을 가지고 온다

data1 = Boards.objects.filter(title__in=["ㅁㄴㅇ", "ㄴㅇㄹ"])
data2 = Boards.objects.filter(title__in=["ㅁㄴㅇ", "ㅇㅀ"])
data3 = intersection(data1, data2)

결과는 title 이 ㅁㄴㅇ인 데이터를 가지고 온다.

반응형