: 데이터베이스와 파이썬 클래스(객체)로 추상화된 형태로 상호작용
Djanog는 개발자가 데이터베이스에 대한 깊은 지식 없이도 쉽게 데이터 관리 가능
Model을 통한 DB 관리 💫
urls.py
views.py
models.py 통해 데이터 다룸models.py
templates

: DB의 테이블을 정의하고 데이터를 조작할 수 있는 기능들을 제공
⇒ Model class는 데이터베이스 테이블 구조를 설계하는 blueprint 역할을 함. 어떤 데이터를 저장할지, 그 데이터의 형태는 어떠할지 (타입, 길이 등)를 python 코드로 명확히 정의함
Model 클래스 작성

id 필드는 Django가 자동 생성
작성한 모델 클래스는 최종적으로 DB에 다음과 같은 테이블 구조를 만듦

클래스를 자세히 살펴보면
from django.db import models
# articles/models.py
class Article(models.Model): #(1)
#(2)
title = models.CharField(max_length=10) #(3)
#(2)
content = models.TextField()
#(1) django.db.models 모듈의 Model이라는 부모 클래스를 상속 받음 → Model은 model에 관련된 모든 코드가 이미 작성 되어있는 class
#(2) 클래스 변수명 → 테이블의 각 “필드(열) 이름”

#(3) Model Field

<aside> 💡
[TIP]
: DB 테이블의 필드(열) 정의. 데이터 타입(Field types) 및 제약 조건(Field options) 명시
⇒ Django는 이러한 필드 정의를 바탕으로 데이터베이스의 칼럼을 자동으로 생성하고, 데이터 입력 시 유효성 검사 등 필요한 기능을 제공함. 정확한 필드 정의는 애플리케이션의 안정성을 높이는 데 필수적임

: 데이터베이스에 저장될 데이터의 종류를 정의 (models 모듈의 클래스로 정의되어 있음)
CharField()
max_length 는 선택옵션TextField()
주요 필드 유형
<aside> 💡
다양한 Django 모델 필드 유형을 모두 다루기는 어려움. 필요한 필드 유형은 Django 공식 문서를 참고하여 찾아 사용해야 함.
https://docs.djangoproject.com/en/5.2/ref/models/fields/
</aside>
: 필드의 “동작”과 “제약 조건”을 정의