저번에 작성한 models.py의 클래스를 토대로 만들어진 DB Table에 python shell에서 다양한 method기능을 사용해보았다.


python shell 실행

python manage.py shell

values()

a = Category.objects.values("name")

for i in a:
	print(i)

object의 원하는 컬럼만 가져오기 위해 value를 사용할 수 있다. values()는 model Instnace가 아닌 Dictionary로 이루어진 QuerySet을 Return해준다.


values_list()

p = Product.objects.values_list('id','korean_name')

for i in p:
     print(i)

values_list()는 value만 가진 tuple형태로 리턴한다.

save()

# insert

m1 = Menu(name="상품")
m1.save()
# update

product = Product.objects.get(id=10)

product.name # 나이트로 바닐라 크림
product.korean_name = "돌체 콜드 브루"
product.save()
product.korean_name # 돌체 콜드 브루

INSERT 또는 UPDATE 를 수행하는 method로, 단일 객체에 대해서 업데이트를 수행할 때 많이 사용된다.


get_or_create()


get_or_create method는 객체(object)를 조회할 때 유용하게 사용되는 메서드이다. 이 메서드는 (object, created) 라는 Tuple 형식으로 return한다.
첫번째 인자(object)는 우리가 꺼내려고 하는 모델의 Instance이고, 두번째 인자(created)는 boolean flag이다.


Instance가 get_or_create()에 의해 생성되었다면 True를 return하고, 기존 Database에서 get했다면 False를 return한다.

aggregate()

QuerySet을 통해 계산된 평균, 합계 등을 Dictionary의 형태로 출력해준다.

profile
포기하지 않는 개발자

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN