작정하고 Django 14강 - Model, DB 연동 - makemigrations, migrate

_·2023년 8월 3일

작정하고 Django 강의

목록 보기
13/44

Django의 Model

가장 오른쪽의 model 부분에 대해 설명할 것

장고에서 모델은 데이터베이스와 장고 내부에서 사용이 편하도록 연동시켜주는 작업
row, column이 item(객체), Attribute(속성)으로 연결됨
pragmatic -> accountapp -> models.py파일에서 db 연결작업 함

Django와 DB 연동

pragmatic -> accountapp -> models.py파일에서 db 연결작업 함

1. 터미널에 makemigrations 명령어 입력

python manage.py makemigrations : models.py에 쓰는 내용을 db와 연동시킬 파이썬 파일로 만들기

# models.py
from django.db import models

# Create your models here.

class HelloWorld(models.Model):

class # 클래스 하나가 db에서의 어떤 item 하나가 되는 것
HelloWorld라는 객체를 생성하는데 models의 Model을 상속받아서 할 것

2. Model에 대한 소스코드 확인

-> Command + b 키를 통해 클래스 Model에 대한 소스코드 확인 가능

Model 클래스는 원초적인 모델인데 이 모델을 상속받아서 원하는 추가적인 정보를 입력하여 새로운 클래스로 만듦

# models.py
from django.db import models

# Create your models here.

class HelloWorld(models.Model):
    text = models.CharField(max_length=255, null=False)

CharFiled는 문자열들을 포함하는 필드 내 다음 파라미터 추가
max_length=255로 설정해주고,
null=False인데 여기서 null은 공백

db에 정보를 저장할 때 이 text라는 Attribute가 없어도 되는지에 대해서 설정을 해줌
우리의 코드에서는 text라는 Attribute만 존재함
그래서 이 속성을 없애면 안되기 때문에 null=False로 설정(true는 해당 Attribute가 없어도 된다는 의미)

이후 터미널에 python manage.py makemigrations 입력
HelloWorld 라는 모델을 생성했다고 나오고, accountapp -> migrations -> 0001_initial.py 파일을 만들었다고 나옴

그다음 자동으로 연동이 되는게 아니라 추가적인 연동 명령어를 입력해줌

3. 터미널에 python manage.py migrate 입력

migrate 명령어를 처음 입력했기 때문에 우리가 방금 하고자 했던 db 연동 작업 뿐만이 아니라 장고에서 제공해주는 기본 admin 기타 다른것들의 마이그레이션 db 연동 작업이 다음과같이 전부 정상적으로 수행되었음을 볼 수 있음

데이터 베이스에 대한 정보는 settings.py 내부에서 확인 가능

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

위 코드는 db.sqlite3라는 이름으로 BASE_DIR에 있다는 것을 의미
즉 db.sqlite3라는 파일이 우리가 사용하고 있는 연동된 db 파일
엔진의 경우는 나중에 배포 시 db를 다른 것으로 바꿀 예정이지만 현재 개발에는 지금 엔진이 아무런 지장이 없으므로 그대로 진행

커밋 하기

0개의 댓글