반응형

Django Model
- 데이터베이스의 테이블을 Python 클래스로 표시한 것 (테이블 구조 정의)
예를 들어 게시글 데이터를 저장할 때,
게시글에는 <제목, 본문, 작성자 이름, 좋아요 수, 생성 시간> 등의 정보가 필요
이러한 정보를 데이터베이스에 저장하기 위해 모델을 사용
Django 모델 생성 방법
- models.Model을 상속받아 class 정의
- 타입에 맞는 field를 통해 속성 정의
from django.db import models
# 게시물
# - 제목, 본문, 작성자 이름, 좋아요 개수, 게시물 생성 시간
class Post(models.Model):
title = models.CharField(max_length=128)
body = models.CharField(max_length=1024)
author_name = models.CharField(max_length=32)
points = models.PositiveIntegerField(default=0)
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self): # 모델 객체를 문자열로 출력
return f"{self.id}, {self.title}"
Migration 생성
- 데이터베이스의 스키마(테이블 구조 등)를 관리하는 데 사용되는 파일
- 모델의 변화를 파일을 통해 순차적으로 기록
- migration 생성 방법: `python manage.py makemigrations`
- migrate 명령어를 통해 데이터베이스를 특정 상태로 변경하거나 이전 상태로 롤백

`makemigrations`를 실행하면 장고가 모델의 변경 사항을 감지하여 Migration 파일 생성
| post/ └── migrations/ └── 0001_initial.py |
데이터베이스에 반영
- Migration 파일 생성 후 실제로 데이터베이스에 적용하려면 migrate 실행 필요
- `python manage.py migrate`
Migration 동작 과정
| Model 작성 ↓ makemigrations ↓ Migration 파일 생성 ↓ migrate ↓ DB 테이블 생성 |
[참고] 실전! Django 입문 강의
반응형