Blog 데이터 모델 만들기

Kangjik Kim·2025년 1월 8일
0

쟝고 모델은 데이터의 정보와 동작의 근원이다.

django.db.models.Model의 하위 클래스인 파이썬 클래스로 구성된다.

각 모델은 데이터베이스 필드가 클래스의 각 속성을 표현하는 단일 DB 테이블에 매핑된다.

블로그 애플리케이션을 위한 DB 모델을 정의하고, 해당 테이블을 생성하기 위해 데이터베이스 마이그레이션을 만들자.

마이그레이션을 적용할 때 쟝고는 애플리케이션의 models.py 파일에 정의된 각 모델의 테이블을 생성한다.

게시글 모델 만들기

블로그 게시물을 DB에 저장할 수 있는 Post 모델을 정의해 보자.

blog 애플리케이션의 models.py에 아래의 코드를 작성한다.

from django.db import models

# Create your models here.
class Post(models.Model):
    title = models.CharField(max_length=250)
    slug = models.SlugField(max_length=250)
    body = models.TextField()
    
    def __str__(self):
        return self.title
  • title
    • 게시물의 제목 필드이다.
    • SQL DB의 VARCHAR로 변환되는 CharField 필드이다.
  • slug
    • SQL DB의 VARCHAR로 변환되는 SlugField 필드이다.
    • 슬러그는 문자, 숫자, 밑줄 또는 하이픈만 포함하는 짧은 레이블이다.
    • Velog의 URL 패턴과 같이
      • Blog-데이터-모델-만들기 와 같이 쓸 수 있다.
    • slug 필드를 사용해 검색 엔진 친화적인 블로그 게시물 URL을 작성할 수 있다.
  • body
    • 게시글의 본문을 저장하는 필드이다.
    • SQL 데이터베이스의 TEXT 컬럼으로 변환되는 TextField 필드이다.
  • __str
    • 사람이 읽을 수 있는, 객체를 표현하는 문자열을 반환하는 파이썬의 기본 메서드이다.
    • 쟝고는 이 메서드를 사용해 여러 위치에서 객체의 이름으로 표시한다.

기본적으로 쟝고는 각 모델에 자동으로 증가하는 primary키 필드를 추가한다.

이 primary키 필드는 각 애플리케이션 구성이나 DEFAULT_AUTO_FIELD 설정을 통해 전역적으로 지정된다,

startapp 명령으로 애플리케이션을 생성할 경우 DEFAULT_AUTO_FIELD 설정의 기본 값은 BigAutoField로, 자동 증가하는 64비트 정수 ID이다.

모델 기본 키를 지정하지 않으면 쟝고가 이 필드를 자동으로 추가한다.

primary_key=True 를 모델 필드에 설정해 모델 필드 중 하나를 기본 키로 정의할 수 있다.

0개의 댓글