Chapter 2-7 Django ORM 완벽 가이드

2025. 4. 30. 17:04·Django

Django ORM 완벽 가이드 🌟

데이터베이스를 다루는 가장 직관적이고 강력한 방법, Django ORM! 이 글에서는 실습 중심으로 CRUD와 필터 기능을 학습하고, 셸 환경 설정부터 실전 팁까지 전부 정리해드립니다.


1️⃣ 장고 ORM 사용을 위한 셸 세팅 방법 🐍

명령어 설명

python manage.py shell Django ORM 사용을 위한 기본 셸 접속
pip install ipython 더 나은 셸 환경 제공 (자동 완성, 컬러 출력)
pip install django-extensions shell_plus 등 강력한 확장 기능 제공
# settings.py 예시
THIRD_PARTY_APPS = [
    "django_extensions",
]

INSTALLED_APPS = DJANGO_APPS + OWN_APPS + THIRD_PARTY_APPS

2️⃣ Django ORM CRUD 실습 📚

🔎 데이터 조회 (Read)

  • 전체 조회: Bookmark.objects.all()
  • 단일 조회:
    • Bookmark.objects.first()
    • Bookmark.objects.last()
    • Bookmark.objects.get(id=1)

📝 데이터 생성 (Create)

  • 직접 생성:
Bookmark.objects.create(name="야후", url="https://yahoo.com")
  • 클래스 방식:
bm = Bookmark(name="야후2", url="https://yahoo.com")
bm.save()

✏️ 데이터 수정 (Update)

bm.name = "네이버2"
bm.save()

❌ 데이터 삭제 (Delete)

bm.delete()

🔁 다수 객체 업데이트

Bookmark.objects.filter(url__icontains="naver").update(name="네이버")

3️⃣ Django ORM의 검색 기능 🔍

메서드 설명 예시

filter(name="네이버") 완전 일치 검색 ✔️ 정확히 일치할 경우만 조회
name__icontains="네" 부분 일치 (LIKE) 🔍 일부 포함된 경우 검색
name__startswith="네" 시작 문자 검색 📌 "네"로 시작하는 항목
name__endswith="버" 끝 문자 검색 ✅ "버"로 끝나는 항목
name__in=["네이버", "야후"] 복수 조건 검색 ✔️ 둘 중 하나만 일치해도 검색
filter(name="네이버", url__startswith="https") AND 조건 검색 🔗 두 조건 모두 만족

⚠️ icontains, startswith 등은 성능 부하를 줄 수 있으므로 너무 짧은 단어는 지양!


4️⃣ 실무 팁 & 흔한 실수 방지 💡

실수 ❌ 올바른 사용 ✅

python 명령으로 ORM 접근 python manage.py shell 사용
객체 생성 후 save() 호출 생략 클래스 방식 생성 시 꼭 save() 필요
get()을 조건 모호하게 사용 결과 2개 이상일 땐 filter() 사용

5️⃣ 전체 요약 🎯

  • Django ORM은 복잡한 SQL 없이도 모델 기반으로 DB를 직관적으로 조작할 수 있습니다.
  • 셸 환경에서는 ipython과 django-extensions로 개발 편의성을 극대화하세요.
  • CRUD, 필터 기능을 다양한 방식으로 익혀 실전 웹 애플리케이션에 바로 적용 가능합니다.

👉 다음 편에서는 Q 객체를 활용한 OR 조건 검색 및 복합 쿼리 구성법을 다룹니다. 기대해주세요!

'Django' 카테고리의 다른 글

Chapter 3-2 Django 블로그 목록 페이지 만들기  (0) 2025.05.06
Chapter 2-8 Django ORM 완전 정복: 데이터 삭제, 업데이트, 필터링 실습 정리  (0) 2025.04.30
Chapter 2-6 Django ORM 요약본 – QuerySet 기초 활용법 정리  (0) 2025.04.30
Chapter 2-4 Django Admin 기능 완전 정복 요약본  (0) 2025.04.30
Chapter 2-3 Django 모델 & 마이그레이션 완전 정복  (0) 2025.04.30
'Django' 카테고리의 다른 글
  • Chapter 3-2 Django 블로그 목록 페이지 만들기
  • Chapter 2-8 Django ORM 완전 정복: 데이터 삭제, 업데이트, 필터링 실습 정리
  • Chapter 2-6 Django ORM 요약본 – QuerySet 기초 활용법 정리
  • Chapter 2-4 Django Admin 기능 완전 정복 요약본
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (787)
      • Python (32)
      • 프로젝트 (110)
      • 과제 (25)
      • Database (40)
      • 멘토링 (11)
      • 특강 (37)
      • 기술블로그 (41)
      • 기술블로그-Fastapi편 (33)
      • 기술블로그-Django편 (153)
      • 기술블로그-Flask편 (36)
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (77)
      • Fastapi (16)
      • 연예 (14)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    newpoliticalparty
    btsdischarge
    travel ban
    hotcoffeecase
    chatgpterror
    gpterror
    lawsuitculture
    basalcellcarcinoma
    btsreunion
    americanlaw
    btsjungkook
    livebroadcast
    RM
    smartphonedurability
    btscomeback
    trumpmuskclash
    college reunions
    bts
    urbantrends
    americaparty
    homebartrend
    titaniumcase
    self-growth
    life reflection
    chinanightlife
    classaction
    remittance
    global politics
    뷔
    youngprofessionals
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
Chapter 2-7 Django ORM 완벽 가이드
상단으로

티스토리툴바