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!