DB API
- DB를 조작 하기 위한 도구
- django가 기본적으로 ORM을 제공함에 따른것으로 DB를 편하게 조작하도록 도움
- Model을 만들면 django는 객체들을 만들고 읽고 수정, 지울수 있는 database-abstract API를 자동으로 만듬.
- database-access API라고도 함
1. Making Queries
Queries : 명령문 명령어
아래는 모든 게시글을 조회하는 명령문
1) Manager
- django 모델에 데이터베이스 query 작업이 제공되는 인터페이스
- 기본적으로 모든 django 모델 클래스에 objects라는 Manager를 추가
2) QuerySet
- DB로부터 전달받은 객체 목록
- quertset 안 객체는 0,1 혹은 여러 개일 수 있다.
- DB로 부터 조회, 필터, 정렬 등 수행 가능
2. CRUD
대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능
Creae Read Update Delete
1) Create 방법
a) 특정 테이블에 새로운 행을 추가하여 데이터 추가
b) 두번째 방법
c) 세번째 방법 - 쿼리 표현식 리턴
1-1) create 관련 method
2) Read
2-1) Read 관련 method
get()
- PK를 조회할때 사용
- 주어진 lookup 매개변수와 일치하는 객체를 반환
- 객체를 찾을 수 없으면 DoesNotExist 예외 발생, 둘 이상의 객체를 찾으면 MultipleObjectReturned 예외 발생 시킴
- 위와 같은 특징 때문에 primary key와 같이 고유성을 보장하는 조회에서 사용해야 함.
filter()
- 주어진 lookup 매개변수와 일치하는 객체를 포함하는 새 QuerySet을 반환
- 일치하는게 없으면 빈 QuerySet을 반환(오류발생 X)
3) Updtae
4) Delete
delte()
- QuerySet의 모든 행에 대해 SQL 삭제 쿼리를 수행.
- 삭제된 객체 수와 유형당 삭제 수가 포함된 딕셔너리를 반환.
- Django에서는 기본적으로 삭제된 것을 재사용하지 않는다.
(1번을 삭제한후에 새로운걸 create 해도 1번이 아닌 기존에 존재하는 pk의 마지막 번호 다음 번호로 생성됨)