18 장고 model 만들기 - MySQL 테이블

18.1 MySql과 Model - model manager

테이블을 만드는 방법은 2가지가 있습니다.

1) DJango manager 기능을 이용해 Model을 이용해서 만든 방법
2) sql tool에서 테이블 직접 만드는 방법

두번째 manage.py 를 통해 테이블을 만들어 보겠습니다.

18.2 Django Model 작성 - Model.py

model.py 에 py_blog 테이블을 스키마를 작성합니다. 테이블 명은 py_blog 로 합니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
#myaap/blog/model.py

from django.db import models

class PyBlog(models.Model):
    id    = models.IntegerField(primary_key=True, null=False)
    title = models.CharField(max_length=100)

    class Meta:
        db_table = 'py_blog'

18.2 Django Model 작성(2) - makemigrations

이제 makemigrations 명령을 통해 장고에게 모델을 만들었다고 알려주시면 됩니다.

※ makemigrations 은 모델을 변경시킨 사실과
새로운 모델을 만들었다는것을 DJango에게 알려주는 명령어 입니다.

1
python manage.py makemigrations

makemigrations 을 실행하면
myapp/blog/migrations/0001_initial.py 파일이 생긴 것을 확인할 수 있습니다.

18.2 Django Model 작성(2) - migrate

migrate는 migration을 감지된 모델들을 실행하고,
자동으로 데이터베이스 스키마를 관리해주는 기능을 합니다.

이제 migrate명령을 실행하면 py_blog 테이블이 생길것입니다.

1
python manage.py migrate

django와 mysql을 연결하고 migrate를 처음 실행하니
여러가지가 만들어 졌습니다.

Django에서 제공하는 관리자, 인증, 회원 관련 테이블이 생성되었습니다.

dbtool이나 mysql로 접속해서 py_blog 테이블이 생성되었는지 확인합니다.

18.3 Django Model 작성(3) - 추가 regist, update

py_blog 테이블에 수정일자와 등록일자 컬럼을 추가하였습니다.

1) model.py 수정 (수정일,등록일 추가) 2) python manage.py makemigrations
3) python manage.py migrate
으로 다시 진행했네요.

1
2
update_dt  = models.DateTimeField(auto_now=True)
regist_dt = models.DateTimeField(auto_now_add=True)