ORM(Object Relational Mapping)
객체와 관계형 데이터 베이스의 데이터를 자동으로 매핑해주는 것
객체 지향 프로그래밍은 클래스를 사용, 관계형 데이터 베이스는 테이블을 사용함(불일치)
ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동 생성하여 불일치 해결
ORM을 이용하면 SQL 쿼리가 아닌 클래스 메서드를 통해 데이터 베이스를 조작할 수 있어, 개발자가 객체 모델을 이용해서 프로그래밍을 하는 데 집중할 수 있게 함
django에서의 ORM
django는 DB에서 데이터를 저장하거나 불러올 때 모델을 사용하며 모델은 클래스로 만든다.
모델 클래스를 만들 때 models.Model을 상속 받는데, 이 부모 클래스는 ORM이 동작하도록 함
> 모델 클래스 예시(models.py)
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')