Chapter 2-6 Django ORM 요약본 – QuerySet 기초 활용법 정리

2025. 4. 30. 15:30·Django

✅ Django ORM 요약본 – QuerySet 기초 활용법 정리

Django ORM(Object-Relational Mapping)은 SQL문 없이도 파이썬 코드로 데이터베이스와 직접 상호작용할 수 있게 해주는 강력한 도구입니다. 이번 튜토리얼에서는 ORM을 활용한 데이터 조회 및 필터링 방법을 중심으로 정리했습니다.


 


1. 📓 Django ORM 기본 개념

용어 설명

ORM Object-Relational Mapping, 객체와 관계형 DB를 연결
Model Manager .objects를 통해 모델 인스턴스를 제어함
Bookmark.objects DB의 Bookmark 테이블에 접근하는 기본 구문

🔍 예시 코드:

Bookmark.objects.all()        # 모든 데이터 조회
Bookmark.objects.get(pk=1)    # 특정 데이터 한 건 조회 (Primary Key 기준)

2. 📓 QuerySet 기초 – all(), get(), filter()

메서드 설명

.all() 전체 데이터를 조회 (SELECT * FROM table)
.get() 조건에 맞는 단일 객체 조회 (없거나 여러 개면 오류 발생)
.filter() 조건에 맞는 여러 개의 객체를 리스트(QuerySet) 형태로 반환

🔍 예시 코드:

Bookmark.objects.all()  # 전체 북마크 조회
Bookmark.objects.get(pk=1)  # id가 1인 북마크 조회
Bookmark.objects.filter(name="네이버")  # 이름이 '네이버'인 모든 북마크 조회

3. 📊 필드 조건 검색 – 다양한 연산자 활용

장고 ORM은 다양한 필터 연산자를 지원하여 SQL의 WHERE 조건을 대체합니다.

연산자 의미 예시

__icontains 포함된 문자열 (대소문자 무시) name__icontains="네이버"
__gt 크다 (greater than) id__gt=2
__gte 크거나 같다 created_at__gte="2024-01-01"
__lt 작다 (less than) id__lt=5
__lte 작거나 같다 id__lte=10

🔍 예시 코드:

# 이름에 '네이버'가 포함된 북마크 조회
Bookmark.objects.filter(name__icontains="네이버")

# 2024년 이후에 생성된 북마크 조회
Bookmark.objects.filter(created_at__gte="2024-01-01")

4. 🌐 ORM 문서 및 실전 팁

🔍 장고 공식 문서 검색어 추천:

  • Django ORM docs
  • QuerySet API Reference

💡 자주 사용하는 함수:

  • .exclude() – 특정 조건 제외:
Bookmark.objects.exclude(name="네이버")
  • .order_by() – 정렬:
Bookmark.objects.order_by("-created_at")  # 최신순
  • .annotate() – 집계 필드 추가:
from django.db.models import Count
Bookmark.objects.annotate(total=Count("url"))

5. 🔗 마무리

이번 수업에서는 Django ORM의 기초를 학습하며 .all(), .get(), .filter()의 차이점과 주요 필터 조건들을 익혔습니다.

이를 활용하면 SQL문 없이도 충분히 다양한 데이터 조회 및 필터링이 가능하며, 코드의 가독성과 유지보수성도 높아집니다.

앞으로 더 복잡한 쿼리도 ORM으로 처리할 수 있도록 점차 확장해 나갈 예정입니다.

수고하셨습니다! 🚀

'Django' 카테고리의 다른 글

Chapter 2-8 Django ORM 완전 정복: 데이터 삭제, 업데이트, 필터링 실습 정리  (0) 2025.04.30
Chapter 2-7 Django ORM 완벽 가이드  (0) 2025.04.30
Chapter 2-4 Django Admin 기능 완전 정복 요약본  (0) 2025.04.30
Chapter 1-10 Django로 구구단 페이지 만들기  (0) 2025.04.29
Chapter 1-9 Django 템플릿 구성 파일 개발 & 방안  (0) 2025.04.29
'Django' 카테고리의 다른 글
  • Chapter 2-8 Django ORM 완전 정복: 데이터 삭제, 업데이트, 필터링 실습 정리
  • Chapter 2-7 Django ORM 완벽 가이드
  • Chapter 2-4 Django Admin 기능 완전 정복 요약본
  • Chapter 1-10 Django로 구구단 페이지 만들기
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (547) N
      • Python (31)
      • 프로젝트 (43)
      • 과제 (23) N
      • Database (40)
      • 멘토링 (9)
      • 특강 (25) N
      • 기술블로그 (170) N
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (52) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
Chapter 2-6 Django ORM 요약본 – QuerySet 기초 활용법 정리
상단으로

티스토리툴바