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을 모른 상태에서도
데이터 흐름을 이해하는 데 아주 좋은 출발점입니다.
'Django 프론트& 백엔드 개발' 카테고리의 다른 글
| [Model] Django 관리자(Admin) 생성과 모델 관리하기 (0) | 2026.01.04 |
|---|---|
| [Model] Django ORM으로 데이터 수정(Update)과 삭제(Delete)하기 (0) | 2026.01.04 |
| [Model] Django Shell로 데이터 직접 다뤄보기 (조회 & 추가) (0) | 2026.01.04 |
| [Model] Django Migration 개념 정리 (0) | 2026.01.04 |
| [Model] 데이터 모델링과 마이그레이션 흐름 정리 (0) | 2026.01.04 |