파이썬과 마찬가지로 장고 기초쌓기 -
장고를 사용하며 쿼리셋 형태를 자주 접하고, 사용하고 있다.
그런데 의미도 모른채 사용하고 있었던 것이 아닌가?
아무 생각없이 사용하던 용어들을 풀어서 의미를 확실히 알고 가보자!
: 문의, 의문의 의미. 데이터베이스에 특정한 데이터를 보여달라는 클라이언트의 요청.
ex) 구글에 Query를 검색 => 데이터를 송출
Query 라는 데이터를 달라는 쿼리를 주어 서버가 데이터베이스에서 맞는 데이터를 찾아 보낸 것이다!
: 여러 종류의 데이터를 데이터베이스 종류와는 독립적인 형태로 객체화한다.
모델 클래스를 통해 객체를 만들고 객체를 통해 데이터베이스에 접근한다!
: 통합하여 관리하는 데이터의 집합체. 중복된 데이터를 없애고 자료를 구조화하여 효율적인 처리를 할 수 있도록 관리됨
: 장고의 ORM인 장고 모델을 sql문으로 만들어주는 주체.
objects를 사용하여 다수의 데이터를 가져오는 함수를 사용할 때 반환되는 객체이다!
전달받은 모델의 객체 목록. 즉 데이터베이스로부터 데이터를 읽고 필터를 사용하고 정렬할 수 있다.
view에서 try-except 예외처리 대신 사용할 수 있는 구문이다.
예외처리가 필요없다!
ex)
>>> from django.shortcuts import get_object_or_404
>>> get_object_or_404(Book, title="없는 책")
ObjectDoesNotExist
: 모든 모델 객체에서 이용가능 (import 해야함)
DoesNotExist
: 특정 모델에서만 이용가능
객체 목록을 정렬해주는 함수이다.
Product.objects.order_by('created_at') : 객체 생성일 오름차순
Product.objects.order_by('-created_at') : 객체 생성일 역순
조금이라도 의문이 들었던 개념들을 정리하며 공부해보았으니,
이제 Q객체와 annotate, aggregate를 학습해보자!