Django에서 데이터를 다룰 때는
모델 정의 → 마이그레이션 생성 → DB 반영이라는 일관된 흐름을 따릅니다.
1. 사용할 데이터 먼저 정의하기
먼저 화면과 기능에서 어떤 데이터가 필요한지를 확인합니다.
- 메뉴 이름
- 설명
- 가격
- 이미지 경로
이렇게 데이터 구조가 정리되면, 이를 모델(Model) 로 표현합니다.
2. 모델(Model) 작성
from django.db import models
class Menu(models.Model):
name = models.CharField(max_length=50)
description = models.CharField(max_length=50)
price = models.IntegerField()
img_path = models.CharField(max_length=255)
def __str__(self):
return self.name
- 모델은 DB 테이블 설계도
- Field는 컬럼 정의
- __str__은 관리자 페이지나 디버깅 시 가독성을 위해 사용
3. 마이그레이션 생성 (설계도 만들기)
python manage.py makemigrations
이 명령어는:
“모델이 이렇게 바뀌었으니
DB를 이렇게 바꾸면 되겠어요”
라는 설계 파일(migration) 을 생성합니다.
foods/migrations/0001_initial.py
- Create model Menu
4. DB에 실제 반영하기
python manage.py migrate
이 명령어로:
- 테이블 생성
- 컬럼 추가
- 변경 사항 적용
이 실제로 DB에 반영됩니다.
5. 전체 흐름 파악
사용할 데이터 정의
↓
models.py 작성
↓
makemigrations (설계도 생성)
↓
migrate (DB 반영)
이 순서는 Django에서 항상 동일합니다.
6. 정리하면
- Model은 DB 구조를 코드로 표현한 것
- makemigrations는 변경 이력을 만드는 단계
- migrate는 DB에 실제 적용하는 단계
- 모델 변경 = 항상 마이그레이션 필요
“모델은 코드지만,
DB에 반영하려면 반드시 migration을 거친다”
'Django 프론트& 백엔드 개발' 카테고리의 다른 글
| [Model] Django Shell로 데이터 직접 다뤄보기 (조회 & 추가) (0) | 2026.01.04 |
|---|---|
| [Model] Django Migration 개념 정리 (0) | 2026.01.04 |
| URL, View, Template의 관계 정리 (0) | 2026.01.04 |
| Django의 get_static_prefix 개념 (0) | 2026.01.04 |
| Django에서 동적 URL(Dynamic URL) 사용하기 (0) | 2026.01.04 |