[Django] Django ORM 본문

[PL]/Python

[Django] Django ORM

객과 함께. 2021. 9. 13. 18:00

기본 SQL절에서 Like에 대한 django ORM에서 표현 방법

 

query_set = TableName.objects.filter( field_name__contains = search_pattern )
=> SELECT * FROM TableName WHERE field_name like '%search_pattern%'

query_set = TableName.objects.filter( field_name__startswith = search_pattern )
=> SELECT * FROM TableName WHERE field_name like 'search_pattern%'

query_set = TableName.objects.filter( field_name__endswith = search_pattern )
=> SELECT * FROM TableName WHERE field_name like '%search_pattern'

 

Aggregate

일부분을 가져 왔습니다. (Django ORM을 이용해 테이블의 컬럼의 합 구하기 )

복수 개의 item이 있고 카테고리 번호가 3번인 상품들에 한해서 price의 합을 구하고 싶으면 아래와 같이 할 수 있다. Sum 함수를 임포트 해야하고 인자로써 합계를 구하려는 필드명을 적어주어야 한다.

# Sum 함수를 임포트 해주어야 한다
from django.db.models import Sum
total_price = Item.objects.filter(category=3).aggregate(Sum('price'))

aggregate의 결과를 total_price라는 변수에 저장을 했다. aggregate의 결과 값은 dict형으로 반환되며 아래와 같이 사용하면 된다.

 

'[PL] > Python' 카테고리의 다른 글

Django-allauth 설정 및 작성  (0) 2022.01.13
[Django] Graphql 기반 - Create, Update  (0) 2021.09.16
Graphql기반한 CRUD중 - Select  (0) 2021.09.13
[Django] Django ORM  (0) 2021.09.13
[정리중] Django ISSUE  (0) 2021.07.17