이전장에서 bootstrap 과 django를 다루어보았다.

이번장에서는 DB를 생성하는 방법을 다루어본다.


처음 django를 접하는 사람은 DB는 언제 어떻게 생성하지? 하는 궁금증을 가지게 된다.

Django에서는 models.py에 클래스를 정의하여 DB를 컨트롤 한다. 

기존에 웹프로그래밍을 했던 사람이라면 혼란스럽기도 하고 신세계이기도 할것이다.


이전장에서 pat이란 앱을 만들었다.

앱 디렉토리에 models.py가 존재한다.

[root@leopit.com pat]# ls
admin.py   apps.py   __init__.py   migrations  models.pyc  templates  views.py
admin.pyc  apps.pyc  __init__.pyc  models.py   static      tests.py   views.pyc
[root@leopit.com pat]#


DB를 생성하기 위해 models.py에 아래와 같이 필드를 추가하였다.

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models

# Create your models here.

class Notice(models.Model)
    name = models.CharField(max_length=50)
    title = models.CharField(max_length=50)
    content = models.TexeField()
    cdate = models.DateTimeField(auto_now_add=True)


간단히 이름/제목/내용/날짜 필드를 만들었다.

models 모듈에 속한 필드 클래스로 멤버를 선언하면 마이그레이션 후 자동으로 DB와 연결된다.

Field Type에 대한 상세한 내용은 Django 문서를 참조하기 바란다.

https://docs.djangoproject.com/en/1.8/topics/db/models/#fields


이제 makemigrations 명령어를 통해 마이그레이션 스크립트를 생성한다. 

수정/삭제/생성할 필드들을 스크립트로 생성하여 migrations 디렉토리에 저장하게 된다.

[root@leopit.com leopit]# python manage.py makemigrations Migrations for 'pat': pat/migrations/0001_initial.py - Create model Notice [root@leopit.com leopit]#


마지막으로 migrate를 하여 DB를 생성한다.

[root@leopit.com leopit]# python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, pat, sessions
Running migrations:
  Applying pat.0001_initial... OK
[root@leopit.com leopit]#


'Coding' 카테고리의 다른 글

6. Django + Mariadb 연동 & APP DB 어드민 등록  (0) 2019.01.06
5. Django 글쓰는 폼 만들기  (0) 2018.12.30
Django 개발 흐름  (0) 2018.12.16
3. Django + Bootstrap  (1) 2018.12.16
2. Django 설치편  (0) 2018.12.14

+ Recent posts