본문 바로가기

WEB

[Django] ORM

ORM이란 Object Relation Mapping의 약자로. 객체(Object)와 관계형 DB(Relation)를 연결(Mapper)해주는 것을 뜻한다.

ORM을 사용하면 데이터를 CRUD를 할때 SQL을 사용하지 않고도 가능하게 한다.

 

 

[데이터 조회]


Product.objects.all() # 전체 데이터 조회

 

 

 

[get vs filter]

 

get은 1개만 반환, filter는 여러개 반환

만약 get을 사용했는데 반환이 여러개면 오류

Product.objects.get(id=1)
Product.objects.filter(id=1)

 

 

[lt , gt, lte, gte]

Product.objects.filter(price__lt=9000) # price < 9000
Product.objects.filter(price__gt=9000) # price > 9000
Product.objects.filter(price__lte=9000) # price <= 9000
Product.objects.filter(price__gte=9000) # price >= 9000

 

[in]

Product.objects.filter(price__in=[7000,8000]) # []안에 속한것만 리턴

 

 

[contains]

products.filter(pname__contains='버거') # 포함

 

 

[aggregate]

필드의 합, 평균, 개수를 셀때 사용

Product.objects.filter(price__gt=9000).aggregate(Sum('price'))

Sum, Avg, StdDev, Count, Max 등이 있다

 

 

[exclude] 

제외하고 리턴

products.exclude(pname='파이썬')

 

[order_by]

정렬하기, -는 내림차순으로 정렬

Product.objects.all().order_by('-id')

 

[values]

원하는 컬럼만 들고오기

Product.objects.values('price')

 

 

[데이터 삽입]


Product(
    price = 8000,
    pname = "상품이름"
).save();

 

 

[데이터 수정]


upRec = Product.objects.get(id=1)
upRec.price = request.POST.get("price")
upRec.pname = request.POST.get("pname")
upRec.save()

 

 

[데이터 삭제]


 

delRec = Product.objects.get(id=1)
delRec.delete()