차근차근 생활 & 코딩

[DJANGO] 장고 ORM 정리 본문

IT/DJANGO(장고)

[DJANGO] 장고 ORM 정리

ssilook 2021. 7. 27. 16:33
반응형

장고 ORM을 정리해보고자 합니다.

처음 배울 때 ORM의 개념조차 모른 상태에서 시작할 때 접고 싶었으나 다른 사람들은 그러질 않길 바라며,

내용을 정리하여 공유드리고자 합니다.

그럼 장고 ORM을 시작 하도록 겠습니다.

ORM이란, 객채(Object)의 관계(Relational)를 연결(Mapper)해주는 것을 뜻한다.

객체 지향적인 방법을 사용하여 데이터베이스의 데이터를 쉽게 조작할 수 있게 해주는 것이다.

즉, Django의 ORM이란 파이썬과 데이터베이스의 SQL사이의 통역사 역할을 해준다.

앞으로 아래의 Function을 활용하여 ORM을 완성해 갈 것입니다.

원하는 query를 만들기 위해서는 함수들을 사용해야 합니다.

지금부터 같이 하나씩 공부해보도록 합시다.

 

 

조건 키워드

① model.objects.filter(name__contains=’Welcom’)

② model.objects.filter(name__icontains=’Welcom’)

: ① 문자 검색할 수 있음 / ② 대소문자를 구분하지 않음

 

ORM을 활용한 데이터 전체 불러오기
# SQL CODE
SELECT * FROM TABLE

Ex) SQL
  SELECT title, text FROM Post

# DJANGO ORM CODE
Model.objects.all()

Ex) Django Model.py
  from django.db import models

  class Post(models.Model):
      title = models.CharField(max_length=200)
      text = models.TextField()

 

ORM을 활용한 데이터 필터

 

GetFilter 차이

  • Get : 한 개의 데이터를 추출할 때 사용
  • Filter : 여러 개의 데이터를 추출 할때 사용
#[SQL]
>>> SELECT * FROM TABLE WHERE id = 1

#[ORM]
#필터를 활용한 id 테이블 검색
>>> Model.objescts.filter(id=1)

# Get을 활용한 id 테이블 검색
>>> Model.objects.get(id=1)

키워드 조건표

 

ORM을 활용한 데이터 - 정렬하기
[SQL 문법]
SELECT * FROM TABLE1 ORDER BY(create_date)

[ORM 문법]
Model.objects.all().order_by(‘created_date’)

 

ORM을 활용한 데이터 - 평균, 최소, 최대, 합계

 

View 테이블에 아래와 같이 import Code를 넣어 주지 않으면 에러가 발생할 테니 꼭 넣어 주길 바랍니다.

from django.db.models import Avg, Max, Min, Sum
[SQL CODE]
SELECT COUNT(PROCESS)
  FROM TABLE 
  GROUP BY PROCESS
  
[ORM CODE]
TABLE.objects.all().aggregate(Avg('PROCESS')) #평균

TABLE.objects.all().aggregate(Min('PROCESS')) #최소

TABLE.objects.all().aggregate(Max('PROCESS')) #최대

TABLE.objects.all().aggregate(Sum('PROCESS')) #합계
반응형
Comments