Django 모델 (models.py)
목표
models.py 의 모델이 앱이 다루는 데이터의 구조를 코드로 정의한 것이며, 뷰가 이 모델을 통해 데이터를 꺼내고 저장한다는 것을 이해한다.1. Model(모델)이란?
Model(모델) 은 앱이 다루는 데이터의 구조(모양)를 코드로 정의한 것입니다. 회의 서비스라면 "회의 한 건에는 제목·날짜·참석자가 있다" 같은 데이터의 틀을 models.py 에 적어 둡니다. 화면(View·Template)이 겉모습이라면, 모델은 그 뒤에서 다루는 데이터의 뼈대입니다.
2. 모델 하나 = 표 한 장의 설계도
모델 하나는 데이터를 담는 표 한 장의 설계도라고 보면 됩니다. 모델에 적은 항목 하나하나가 표의 열(칸) 이 되고, 실제 데이터는 그 표에 한 줄씩 쌓입니다.
예를 들어 Meeting(회의) 모델을 이렇게 정의하면:
| 항목(필드) | 제목 | 날짜 | 참석자 |
|---|---|---|---|
| 뜻 | 회의 이름 | 언제 열리는지 | 누가 참여하는지 |
회의를 하나 만들 때마다 이 표에 "제목·날짜·참석자" 한 줄이 쌓입니다.
3. 데이터를 꺼내고 저장하기
뷰가 데이터베이스를 직접 만지지는 않습니다. 앞 뷰 강의에서 봤듯, 모델이 데이터베이스에서 데이터를 꺼내 오거나 새로 저장하고, 뷰는 그 데이터를 받아 씁니다(예: 이 사용자의 회의 목록). 즉 모델은 데이터의 구조를 정의하는 동시에, 데이터베이스를 드나드는 통로 역할도 합니다.
마무리
- 핵심 정리: 모델(
models.py)은 앱이 다루는 데이터의 구조를 정의한 것입니다. 모델 하나가 표 한 장에 대응하고(항목 = 열), 뷰가 이 모델을 통해 데이터를 꺼내고 저장합니다. 이것이 M·V·T 의 M 입니다. - 주의 사항: 모델을 바꾸면(항목 추가·변경) 데이터를 담는 표의 구조도 맞춰 바꿔야 합니다. 이 반영은 조심스러운 작업이라 데이터베이스 챕터에서 따로 다룹니다.
- 다음 시간: 뷰가 이 데이터를 채워 넣는 화면 틀, Template(템플릿) 을 봅니다.