ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Django - Db(데이터베이스) Table 생성
    Search: Django Django 2020. 6. 11. 22:12

     

    Prj1/settings.py 파일

    기본적으로는 SQLite을 사용하도록 구성되어 있다. SQLite 를 데이터베이스로 사용하지 않는 경우, USER, PASSWORD, HOST 같은 추가 설정이 반드시 필요하다.

     

    INSTALLED_APPS

    현재 Django 인스턴스에서 활성화된 모든 Django 어플리케이션들의 이름이 담겨 있다.
    django.contrib.admin: 관리용 사이트.
    django.contrib.auth: 인증 시스템.
    django.contrib.contenttypes: 컨텐츠 타입을 위한 프레임워크.
    django.contrib.sessions: 세션 프레임워크.
    django.contrib.messages: 메세징 프레임워크.
    django.contrib.staticfiles: 정적 파일을 관리하는 프레임워크.

     

    적용하는 명령문

    C:\Prj1> py manage.py migrate

    migrate를 실행하기 전에 INSTALLED_APPS에서 제거할 어플리케이션들을 그냥 주석처리(comment-out) 하거나 삭제하면된다.

     

    모델 만들기

    모델이란 부가적인 메타데이터를 가진 데이터베이스의 구조(layout)를 말한다. 사용할 데이터의 필수적인 필드들과 동작들을 포함하고 있다.

    App1/models.py

    from django.db import models
    
    class ModelTest1(models.Model):
        text1 = models.CharField(max_length=200)
        date1 = models.DateTimeField('date published')
    
    class Question(models.Model):
        question_text = models.CharField(max_length=200)
        pub_date = models.DateTimeField('date published')
    
    
    class Choice(models.Model):
        question = models.ForeignKey(Question, on_delete=models.CASCADE)
        choice_text = models.CharField(max_length=200)
        votes = models.IntegerField(default=0)

     

    App1/apps.py에 'App1Config'가 있고 이것을 INSTALLED_APPS에 추가해야 한다.

    INSTALLED_APPS = [
        'App1.apps.App1Config',
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    ]

     

    C:\Prj1> py manage.py makemigrations App1
    Migrations for 'App1':
      App1\migrations\0001_initial.py
        - Create model ModelTest1

     

    C:\Prj1> py manage.py sqlmigrate App1 0001
    
    BEGIN;
    --
    -- Create model Question
    --
    CREATE TABLE "app1_question" (
        "id" serial NOT NULL PRIMARY KEY,
        "question_text" varchar(200) NOT NULL,
        ....
    ....

    sqlmigrate 명령은 migration 이름을 인수로 받아, 실행하는 SQL 문장을 보여준다.

    python manage.py check 명령을 통해 마이그레이션을 수행하거나 데이터베이스를 건드리지 않고도 프로젝트의 문제를 확인할 수 있습니다.

     

    migrate 를 실행시켜 데이터베이스에 모델과 관련된 테이블을 생성해볼 수 있다.

    C:\Prj1> py manage.py migrate

     

    모델의 변경을 만드는 3단계 재정리. 
    1. (models.py 에서) 모델을 변경한다.
    2. python manage. py makemigrations을 통해 이 변경사항에 대한 마이그레이션을 만든다.
    3. python manage. py migrate 명령을 통해 변경사항을 데이터베이스에 적용한다.
    마이그레이션을 만드는 명령과 적용하는 명령이 분리된 것은 버전 관리 시스템에 마이그레이션을 커밋하고 앱과 함께 출시할 수 있도록 하기 위해서이다.

     

    다음단계

    2020/08/18 - Django - Db Table 읽고 쓰기

     

    'Django' 카테고리의 다른 글

    Django - 관리자 계정 만들기 (admin)  (0) 2020.08.18
    Django - Db Table 읽고 쓰기  (0) 2020.08.18
    Django - App 개요  (0) 2020.08.18
    Django LTS version  (0) 2020.08.18
    Django - App 예제  (0) 2020.06.11
    Django - 프로젝트(Project) 생성  (0) 2020.06.11
    Django 설치  (0) 2020.06.11
    Django 개요  (0) 2020.06.11

    댓글