ORM(objective relational mapping)을 직역하면 객체 관계를 연결하는 것이다. ORM은 파이썬의 객체인 class와, 데이터베이스의 객체인 table을 mapping 해서 데이터를 가져올 수 있도록 한다. 쉽게 말하면 파이썬 class와 데이터베이스의 테이블이 서로 소통할 수 있도록 연결해주는 징검다리의 역할을 한다고 보면 된다.
구체적인 과정을 말해보자면 object
라는 manager class를 통해 get()
메서드를 사용한다. 그리고 데이터베이스에서 데이터를 가져와서, models.py
에 정의한 class를 가지고 intance 객체를 만들어 파이썬에서 사용할 수 있게 한다. 이런 식으로 데이터베이스의 데이터를 파이썬에서 사용하게 하고 파이썬에서 정의한 데이터를 데이터베이스에 옮길 수 있게 도와준다.
models.py
를 작성하고 model.objects
의 method를 통해서 Database와 통신할 수 있다. 여기서 QuerySet API가 제공하는 all() , filter() , exclude() , values() , get() , create(), values_list()
메서드를 활용하여 데이터베이스에 데이터를 생성/조회/수정/삭제 작업(C.R.U.D)을 한다.
C.R.U.D는 각각 create read update delete를 의미한다. 초기 세팅에서 만든 westarbucks
프로젝트에서 사용한 예시는 여기 포스트를 참고하면 된다.
get
은 하나의 객체만 불러오고, filter
는 다수의 객체를 리스트로 불러올 수 있다. 객체 형식으로 나오는지 리스트 형식으로 나오는지에 따라서 error 여부가 달라지니 꼭 신경쓰자.