DRF Model
Django model
장고는 스프링의 MVC pattern과는 조금 다른 MTV pattern을 사용합니다.
스프링은 Model, View, Controller을 사용하지만, 장고는 Model, Template, View를 사용합니다.
여기서 장고의 Template는 스프링의 View와 비슷한 역할을 수행하고,
장고의 View는 스프링의 Controller과 비슷한 역할을 수행한다고 합니다.
(아직 스프링에 대한 학습이 부족하여 스프링의 controller가 정확이 어떤 역할을 수행하는지 잘 모릅니다…^^*)
그중 장고의 모델은 데이터가 어떠한 형식으로 저장될지를 정의하는데, 일반적으로 데이터베이스의 테이블을 코드로 설계할 수 있도록 해줍니다.
Django 공식 문서의 Models를 보게되면,
1
2
3
4
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
위와 같은 간단한 Model 예제를 볼 수 있습니다.
Person이라는 class는 first_name과 last_name을 가지고 있는 것을 볼 수 있습니다. 위 코드를 저장 후 migration을 진행하게 된다면, 아래와 같은 sql문이 실행되는 것을 볼 수 있습니다.
1
2
3
4
5
CREATE TABLE myapp_person (
"id" serial NOT NULL PRIMARY KEY,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(30) NOT NULL
);
장고 모델의 다양한 필드들, 모델간의 상속관계, ORM 사용법 등은 Django documantation, 그리고 Django ORM Cookbook에 정말 정리가 잘 되어있어 위 사이트들을 참고하시는 것이 좋습니다.
댓글남기기