Django Model API

Ethan·2024년 1월 5일
0

django

목록 보기
27/28

장고의 Model을 통해서 데이터베이스의 데이터를 Queryset으로 불러올 수 있다. 여기서 우리는 Model API를 통해 Queryset을 원하는 조건으로 불러올 수 있다.


1. Queryset API


1.1. all()

해당 모델 테이블의 모든 데이터 조회

all()

#예시
Post.objects.all()

1.2. filter()

특정 조건에 맞는 모든 데이터 조회

filter()

#예시
Post.objects.filter({필드}{필드조건옵션}={조건})

1.3. exclude()

특정 조건을 제외모든 데이터 조회

exclude()

#예시
Post.objects.exclude({필드}{필드조건옵션}{조건})

1.4. order_by()

특정 조건으로 정렬된 데이터 조회
기본값은 내림차순 / -를 붙이면 오름차순

order_by()

#예시
Post.objects.order_by({필드})
Post.objects.order_by({-필드})

1.5. values()

Queryset에 있는 모든 모델 데이터모든 정보를 사전형으로 갖는 리스트로 반환

values()

#예시
Post.objects.all().values()

1.6. get()

조건에 맞는 하나의 데이터 조회

get()

#예시
Post.objects.get({조건})

1.7. create()

하나의 데이터생성하고 해당 모델 데이터를 반환

create()

#예시
Post.objects.create({필드}={})

1.8. get_or_create()

조건에 맞는 데이터를 조회, 해당 데이터가 없다면 새로 생성 후 새로 생성된 모델 데이터를 반환

get_or_create()

#예시
Post.objects.get_or_create({필드}={})

1.9. latest()

주어진 필드 기준으로 가장 최신의 모델 데이터를 반환

latest()

#예시
Post.objects.latest({필드})

1.10. first()

Queryset의 가장 첫번 째 모델 데이터를 반환, 만약 정렬하지 않은 Queryset인 경우 pk를 기준으로 정렬 후 반환

first()

#예시
Post.objects.order_by({필드}).first()

1.11. last()

Queryset의 가장 마지막 모델 데이터를 반환

last()

#예시
Post.objects.order_by({필드}).last()

1.12. exists()

Queryset에 데이터가 있다면 True 반환

exists()

#예시
Post.objects.get({조건}).exists()

1.13. count()

Queryset의 데이터 개수정수로 반환

count()

#예시
Post.objects.all().count()

1.14. update()

데이터를 수정할 때 사용하며, 여러 데이터 또는 필드를 한 번에 수정할 수 있음
수정 후 수정된 데이터의 개수를 정수로 반환

update()

#예시
Post.objects.filter({조건}).update({변경내용})

2. 필드 조건 옵션


2.1. __contains

대소문자를 구분하여 문자열 포함 여부 확인

#예시
Post.objects.get({필드}__contains={})

2.2. __icontains

대소문자를 구분하지 않고 문자열 포함 여부 확인

#예시
Post.objects.get({필드}__icontains={})

2.3. __in

반복 가능한 객체 안에서의 포함 여부를 확인

#예시
Post.objects.filter({필드}__in=[{값1}, {값2}, {값3}])

2.4. __gt

초과 여부 확인

#예시
Post.objects.filter({필드}__gt={})

2.5. __gte

이상 여부 확인

#예시
Post.objects.filter({필드}__gte={})

2.6. __lt

미만 여부 확인

#예시
Post.objects.filter({필드}__lt={})

2.7. __lte

이하 여부 확인

#예시
Post.objects.filter({필드}__lte={})

2.8. __startswith

대소문자를 구분하여 해당 문자열로 시작하는지 여부 확인

#예시
Post.objects.filter({필드}__startswith={})

2.9. __istartswith

대소문자를 구분하지 않고 해당 문자열로 시작하는지 여부 확인

#예시
Post.objects.filter({필드}__istartswith={})

2.10. __endswith

대소문자를 구분하여 해당 문자열로 끝나는지 여부 확인

#예시
Post.objects.filter({필드}__endswith={})

2.11. __iendswith

대소문자를 구분하지 않고 해당 문자열로 끝나는지 여부 확인

#예시
Post.objects.filter({필드}__iendswith={})

2.12. __range

range로 제시하는 범위 내에 포함되는지 확인

#예시
Post.objects.filter({필드}__range={시작값}, {끝값})

2.13. __isnull

해당 필드가 Null 인지 여부를 확인

#예시
Post.objects.filter({필드}__isnull=True)
profile
글로 쓰면 머리 속에 정리가 되...나?

0개의 댓글

관련 채용 정보