Chapter 2-7 Django ORM 완벽 가이드

2025. 4. 30. 17:04·Django
목차
  1. 1️⃣ 장고 ORM 사용을 위한 셸 세팅 방법 🐍
  2. 2️⃣ Django ORM CRUD 실습 📚
  3. 🔎 데이터 조회 (Read)
  4. 📝 데이터 생성 (Create)
  5. ✏️ 데이터 수정 (Update)
  6. ❌ 데이터 삭제 (Delete)
  7. 🔁 다수 객체 업데이트
  8. 3️⃣ Django ORM의 검색 기능 🔍
  9. 4️⃣ 실무 팁 & 흔한 실수 방지 💡
  10. 5️⃣ 전체 요약 🎯

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
  1. 1️⃣ 장고 ORM 사용을 위한 셸 세팅 방법 🐍
  2. 2️⃣ Django ORM CRUD 실습 📚
  3. 🔎 데이터 조회 (Read)
  4. 📝 데이터 생성 (Create)
  5. ✏️ 데이터 수정 (Update)
  6. ❌ 데이터 삭제 (Delete)
  7. 🔁 다수 객체 업데이트
  8. 3️⃣ Django ORM의 검색 기능 🔍
  9. 4️⃣ 실무 팁 & 흔한 실수 방지 💡
  10. 5️⃣ 전체 요약 🎯
'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
  • 전체
    오늘
    어제
    • 분류 전체보기 (627)
      • Python (32)
      • 프로젝트 (43)
      • 과제 (25)
      • Database (40)
      • 멘토링 (10)
      • 특강 (31)
      • 기술블로그 (32)
      • 기술블로그-Fastapi편 (0)
      • 기술블로그-Django편 (151)
      • 기술블로그-Flask편 (35)
      • AI 분석 (4)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (72)
      • Fastapi (0)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

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

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.