[python] Django의 모델(Model)이란 무엇인가?

Django는 파이썬으로 작성된 웹 애플리케이션 프레임워크이며, 이 프레임워크에서 모델(Model)은 데이터를 구조화하고 조작하는 데 사용되는 중요한 개념입니다. 모델은 데이터베이스와의 상호 작용을 담당하며, 데이터를 유지하고 요청에 따라 조작하는 방법을 제공합니다.

모델의 역할

Django의 모델은 데이터의 구조를 정의하고 데이터베이스 스키마(schema)를 생성하는 역할을 합니다. 모델은 데이터베이스의 테이블과 일치하는 필드(field)와 메서드(method)로 구성됩니다. 이를 통해 데이터의 생성, 읽기, 업데이트, 삭제(CRUD) 등의 작업을 수행할 수 있습니다.

모델의 정의

Django의 모델은 models.py 파일에서 정의됩니다. 아래는 간단한 예제입니다.

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=50)
    publication_date = models.DateField()
    price = models.DecimalField(max_digits=5, decimal_places=2)

    def __str__(self):
        return self.title

위의 예제에서 Book 모델은 title, author, publication_date, price 필드로 구성됩니다. 각 필드는 데이터베이스 테이블의 열(Column)에 해당하며, CharField, DateField, DecimalField와 같은 필드 유형을 지정할 수 있습니다.

데이터베이스 스키마 생성

모델의 정의를 통해 Django는 데이터베이스 스키마를 생성할 수 있습니다. python manage.py makemigrations 명령을 통해 마이그레이션 파일을 생성한 후, python manage.py migrate 명령을 실행하여 데이터베이스에 적용할 수 있습니다.

모델 활용하기

모델을 사용하여 데이터를 생성 및 조회하려면, Django의 ORM(Object-Relational Mapping)을 이용합니다. 아래는 간단한 예제입니다.

from .models import Book

# 새로운 책 생성
book = Book(title='Django for Beginners', author='John Smith', publication_date='2022-01-01', price='29.99')
book.save()

# 모든 책 조회
books = Book.objects.all()

# 특정 조건에 맞는 책 조회
filtered_books = Book.objects.filter(author='John Smith')

# 책 수정
book.title = 'Django for Experts'
book.save()

# 책 삭제
book.delete()

위 예제에서는 Book 모델을 사용하여 새로운 책을 생성하고 조회하며, 필요에 따라 수정 및 삭제할 수 있습니다.

Django의 모델은 데이터베이스와의 상호 작용을 단순화하는 강력한 도구입니다. 모델을 통해 데이터를 쉽게 조작할 수 있으며, 데이터베이스 스키마의 변화에 유연하게 대응할 수 있습니다.

참고 문서: