Django에서 Model의 기본적인 사용법
2020. 8. 10. 19:07ㆍ개발을 파헤치다/Django
반응형
Django에서 Model이란?
Django를 이용해서 개발을 진행할 때 개념적인 부분을 정확히 이해해야
제대로 된 개발이 가능합니다.
Django같은 Framework는 다 탄생배경이 있으며 어떤 목적을 위해 만들어졌기 때문이죠
그래서 이런 부분을 알아야 내 상황과 프로젝트 특징에 따라서 가장 효율적인 선택을 할 수 있습니다.
Model은 여러분의 웹어플리케이션을 구성하는 하나의 데이터 단위를 의미하는데요.
예를 들어, 쇼핑몰 웹사이트를 만든다고 한다면 아래와 같은 데이터들이 필요하겠죠
- 회원정보
- 물품정보
- 브랜드 종류
- 장바구니 정보
- etc...
이렇게 어플리케이션이 원활하게 돌아가는데 필요한 데이터들이 있는데요.
이것들을 정의하는 것 역시 개바자의 몫입니다.
저는 이런 점 때문에 개발을 참 좋아하는데요! 하나부터 열까지 제 손과 제 생각에서 작품이 탄생하기 때문에 다 만들었을 때의 희열이 있죠! (여담이 너무 길어졌네요...)
Django에서 Model을 정의하는 방법
이 Model들은 데이터베이스 상의 테이블에 해당되는데요. Django와 같이 Full-Stack Framework를 사용하게 되면 데이터베이스에 SQL문으로 직접 테이블들을 설계하기 보다는 ORM(Object-relational Mapping)이라는 것을 통해 설계합니다.
이것을 쓰는 장점은 데이터베이스를 OOP(Object Oriented Programming)에 따라 설계할 수 있을 뿐 아니라 DB가 바뀌더라도 ORM에서 알아서 해당 데이터베이스에 맞는 SQL문으로 테이블과 관계들을 만들어 주기 때문이죠!
또한, 데이터를 객체화 할 수 있으면 유지 보수면에서도 효율적이고 쓸데 없는 코드를 줄일 수도 있습니다.
Model을 구현하기 위해서는 먼저 어플리케이션 디렉토리내 models.py를 오픈합니다.
$ vi [application root directory]/models.py
Person이라는 모델을 클래스 형식으로 구현합니다.
Model 클래스를 상속하는 것에 주의합니다.
Model 클래스를 상속하는 것에 주의합니다.
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
위의 모델을 구현하면 데이터베이스에는 아래와 같은 명령이 실행됩니다.
모델을 구현 후, 실제로 데이터베이스에 적용하기 위해서는 마이그레이션을 수행해야합니다.
CREATE TABLE myapp_person (
"id" serial NOT NULL PRIMARY KEY,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(30) NOT NULL
);
모델을 구현 후, 실제로 데이터베이스에 적용하기 위해서는 마이그레이션을 수행해야합니다.
$ python manage.py migrate
데이터베이스에 myapp_Person 테이블이 생성된 것을 확인할 수 있습니다.
반응형
'개발을 파헤치다 > Django' 카테고리의 다른 글
Django grappelli로 쓸만한 어드민 만들기 (0) | 2020.12.08 |
---|---|
[Django Rest Framework] Serializer에 Model Instance를 인자값으로 보내기 (0) | 2020.08.03 |
Django ORM에서 Subquery 사용하기 (3) | 2019.04.16 |
Python에서 Datetime과 Timezone 다루기 (0) | 2019.04.10 |
Django에서 Many To Many 필드 다루기 (0) | 2019.03.27 |