TIL no.46 - Django - Basic - 10 - Model

박준규·2019년 10월 20일
0

Django

목록 보기
14/30

이제 Model을 구현해보겠습니다.

그전에 Django - Basic - 8까지 진행한 firstapp과 구분하기 위해 second라는 앱을 만들어 주겠습니다.

$ python manage.py startapp second

그리고 app을 만들어줬으니 settings.py에서 'second'를 추가합니다.

그리고 Django - Basic - 8까지는 rootURL로 접근했을 시 firstapp으로 권한을 넘겼지만 이제는 app이 하나 더 생겼으니 각자 url을 정해줍니다.

 from django.contrib import admin
 from django.urls import include, path
 
 urlpatterns = [
     path('firstapp', include('firstapp.urls')),
     path('second', include('second.urls')),
     path('admin/', admin.site.urls),
 ]
#second/urls.py
from django.urls import path
from . import views

urlpatterns = [
]

기본적인 설정은 완료했고 이제 진짜 model을 건드려보도록 하겠습니다.


1. models.py

second 앱의 model을 정의하겠습니다.

#second/models.py

from django.db import models

class Post(models.Model): # Post 라는 게시글을 나타내는 모델을 정의
    title = models.CharField(max_length=30)  # 30자 이하의 문자열
    content = models.TextField()  # 긴 문자열

    created_at = models.DateTimeField(auto_now_add=True)  # 글 작성 시 (이 모델의 데이터(레코드) 저장 시) 생성 시각
    updated_at = models.DateTimeField(auto_now=True)  # 저장된 레코드 수정 시 수정 시각

    # num_stars = models.IntegerField()  # 숫자 필드는 이렇게 선언한다.

Post라는 모델의 특성은 title, content, created_at, updated_at입니다.

각 필드에 대한 설명은
https://developer.mozilla.org/ko/docs/Learn/Server-side/Django/Models
을 참고하면 됩니다.

2. migrate

이제 model을 정의했으니 DB에 이 사실을 알립니다.

$ python manage.py makemigrations second
$ python manage.py migrate second

makemigrations는 migrate할 준비를 합니다. git에서 add와 비슷합니다.

migrate는 실제 DB로 모델 클래스가 DB에 맞게 번역되어 DB에 들어갑니다.


프로젝트에 따라 DB는 다를 수 있습니다. DB를 바꾸기 위해서는 settings.py에서 DATABASE의 ENGINE을 변경해주면 됩니다.

지금은 이 내용까지 다루지 않겠습니다. Django의 기본으로 설정되어있는 sqlite3을 가지고 진행하도록 하겠습니다.

profile
devzunky@gmail.com

0개의 댓글