Django 프론트& 백엔드 개발

[Model] ORM 기본 조회 정리 (get / filter / order_by)

Data Jun 2026. 1. 4. 16:20

Django에서는 ORM(Object Relational Mapping) 을 통해
SQL을 직접 작성하지 않고도 파이썬 코드로 데이터를 조회할 수 있습니다.
이번 글에서는 가장 자주 쓰는 조회 메서드를 정리해보겠습니다.

 

1. 전체 데이터 조회 & 특정 필드만 보기

모든 Menu 객체의 가격만 조회

Menu.objects.all().values('price')

결과 예시:

<QuerySet [{'price': 10000}, {'price': 2000}, {'price': 8000}]>

 

  • 딕셔너리 형태로 반환
  • 특정 컬럼만 확인할 때 유용

 

2. 정렬해서 조회하기 (order_by)

가격 오름차순 정렬

Menu.objects.order_by('price')

가격 내림차순 정렬

Menu.objects.order_by('-price')

 

  • SQL의 ORDER BY 역할
  • -를 붙이면 내림차순

 

3. get vs filter 차이 이해하기

핵심 개념 요약

  • get : 하나의 데이터 조회
  • filter : 여러 데이터 조회

둘 다 조건 키워드(lookup) 와 함께 사용

 

1️⃣ filter : 여러 개 결과 조회

Menu.objects.filter(name__contains="코")

 

결과가 여러 개여도 오류 없음
✔ QuerySet 반환

 

2️⃣ get : 하나의 결과만 조회

Menu.objects.get(name__contains="코")

 

  • 결과가 없어도 오류
  • 결과가 2개 이상이어도 오류
  • 정확히 1개일 때만 사용

 

4. 자주 쓰는 조건 키워드 예시

name__contains="코"      # 문자열 포함
price__gte=5000          # 5000 이상
price__lte=10000         # 10000 이하

 

✔ __ (더블 언더스코어) = 조건 키워드 문법
✔ SQL의 WHERE 절 역할

 

5. 정리하면

  • all() : 전체 조회
  • values() : 특정 컬럼만 보기
  • order_by() : 정렬
  • filter() : 여러 개 조회
  • get() : 하나만 조회 (주의해서 사용)

Django ORM의 조회는 SQL을 모른 상태에서도
데이터 흐름을 이해하는 데 아주 좋은 출발점입니다.