여름의 서재

[Django] CRUD 정복하기(1)_Model 본문

Skill/Django

[Django] CRUD 정복하기(1)_Model

엉아_ 2021. 9. 6. 00:32
728x90

- Model.py

: 단일한 데이터에 대한 정보를 가짐(필수적인 필드들과 동작들을 포함)

: django는 model을 통해 데이터에 접속하고 관리

: 일반적으로 각각의 model은 하나의 데이터베이스 테이블에 매핑 됨

 

 

환경을 셋팅했다면 가장 먼저 앱 폴더에서 models.py에 사용할 테이블을 만들어주자.

from django.db import models

class Article(models.Model):  # django.db 라는 모듈의 models 를 상속
    title = models.CharField(max_length=100)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.title

-> 이때 기본키인 id는 처음 테이블 생성시 자동으로 만들어진다.

-> 모든 모델마다 표준 파이썬 클래스의 메소드인 str() 을 정의하여 각각의 object가 사람이 읽을 수 있는 문자열을 반환(return)하도록 한다.

 

✨ 여기서 잠깐!

 

- makemigrations

: DB에 변경사항이 있다면 그 변경 사항을 반영해 주어야 한다.

모델을 활성화 하기 전에 DB설계도(마이그레이션)을 만들어 준다.

# 터미널

python manage.py makemigrations

-> 0001_initial.py 이라는 새로운 설계도가 생성된다. (이름은 설계도를 계속 만들때마다 바뀜)

 

- migrate

: 설계도를 만들었으면 그 설계도를 실제 DB에 반영한다.

python manage.py migrate

 

- sqlmigrate

: 해당 migrations 설계도가 SQL 문으로 어떻게 해석되어서 동작할지 미리 확인 할 수 있다.

python manage.py sqlmigrate app_name 0001

 

- showmigrations

: migrations 설계도들이 migrate 됐는지 안됐는지 여부를 확인 할 수 있다.

python manage.py showmigrations
Comments