DashBoard Model 생성하기
본 포스팅에서는 DashBoard 개발에 필요한 정보를 구성하는 Model을 생성해보도록 한다.
django 에서 Model이란 데이터를 제공하는 Layer라고 보면 된다. django의 Model은 각 앱안에 기본적으로 생성되는 models.py 모듈 안에 정의하게 된다.

하나 이상의 Model(클래스)를 정의할 수 있으며 django에서 한개의 Model 클래스는 DB에서 한개의 테이블과 같다고 보면 된다.
그렇다면, DashBoard에 필요한 데이터는 무엇이 있을까?
아무리 간단하게 개발한다고 하더라도 아래의 데이터는 필요할 것이다.
django 에 이미 유저정보는 관리되고 있기 때문에 따로 Model에 넣지는 않을 것임. 다음 포스팅에서 자세하게 다룰 예정.)위 데이터를 django 안에서 DB에 연계하여 저장, 조회할 수 있어야 할 것이다.
그러기 위해서 django 의 Model이란 개념이 나오는 것이다.
자, 이제부터 DashBoard에 게시할 게시글(Post) Model을 만들어 보자.
velog_series_01/dashboard/dashboard_core/models.py 파일을 코드에디터로 열고 아래와 같이 코드를 작성하자.
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
# DashBoard 게시글 Model을 정의한다
class Post(models.Model):
title = models.CharField(max_length=60)
contents = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
작성후, 전체저장을 한뒤에 Model을 DB에 넣어 django 와 연동할 수 있도록 한다. 이 작업을 migrate 해준다고 정의한다.
migrate 작업은 아래 2가지 커맨드를 실행함으로써 이루어진다.
migration 파일을 생성한다.python manage.py makemigrations

migrate 작업을 실행한다.python manage.py migrate

문제 없이 OK 로그가 찍혔다면, 성공적으로 migrate 가 끝난 것이다.
그럼 어떻게 DB와 연계되어있는지 상세정보를 알아보자.
방금 전에 생성했던 migration 파일(velog_series_01/dashboard/dashboard_core/migrations/0001_initial.py __init__.py) 을 열어보자.
우리가 Model 설정파일에서 간략하게 작성했던 DB 스키마 사양을 확인할 수 있다.

자, 그렇다면 방금 전에 실행했던 migration 작업으로 인하여, 정말 물리 DB가 생성되었을까?
직접 확인해보자. django 는 프로젝트와 바로 연결되어있는 물리 DB에 접속하기 위하여 별도 커맨드가 포함되어 있다.
프로젝트 폴더에서, 아래 커맨드를 실행한다.
python manage.py dbshell

Default DBMS인 sqlite 로 접속되었음을 알 수 있다.
이제 Model이 물리 DB의 Table로 생성되었는지 아래 커맨드로 확인해보자.
.tables
현재 우리의 DashBoard django 프로젝트에 관련된 물리 Table 목록이 표시된다.
당연히, 방금 우리가 작성했던 post Table도 존재함을 알 수있다!

아래 커맨드로 Table의 컬럼 구조도 확인하자.
pragma table_info("dashboard_core_post");

post Model에 대해서 DB 물리 Table 역시, 잘 만들어졌음을 알 수 있다.
이것으로, 오늘은 django Model 구조와 생성, DB와의 연계작업까지 간단하게 알아보았다.
다음에는 이어서 User 정보를 django 에서는 어떻게 관리해야 하는지 포스팅 하도록 하겠다.
그럼 다음 포스팅에서 계속 ~
Thank you!