Djnago MVT 중에 Model 부분이다. django는 자신만의 ORM을 가지고 있으면 이 부분은 DB와 밀접하게 연결된다. 사실 RDBMS를 배운 사람이면 보자마자 간편함을 느낄 수 있다.

Model field reference | Django documentation | Django

예제 양식을 보자 2021년 2월에 내가 작성하고 있는 코드이다.

from django.db import models
import uuid

HOMEWORK_CHECKED = [
    ('SUBMIT', 'Submit'),
    ('NOT_SUBMIT', 'Not_Submit'),
    ('LATE_SUBMIT', 'Late_Submit'),
]

class TimeStampModel(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now=True)

    class Meta:
        abstract = True

class Homework(TimeStampModel):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4())
    name = models.CharField(max_length=50)
    end_time = models.DateTimeField()

    def __str__(self):
        return '{}'.format(self.name)

공식 페이지를 보면 다양한 기능이 있지만, 기본적으로 다음과 같다.

class를 models.Model에 상속한 뒤에 클래스를 만든다.

클래스 이름이 table 이름이 되며, 그 부분의 클래스의 속성이 열의 이름을 담당한다.

기본적으로 RDBMS의 지식이 있으면 이런 테이블을 찾아서 볼 수 있다.


개인적으로 관심 있게 본 점은 클래스를 만들어서 상속을 할 수 있다는 점이다.