[python] Django에서의 모델링과 데이터베이스 연동

Django는 파이썬으로 작성된 웹 애플리케이션을 쉽게 개발할 수 있도록 도와주는 웹 프레임워크입니다. Django에서 모델링은 데이터베이스와의 상호작용을 편리하게 만들어주는 중요한 부분입니다.

모델 설계

Django 애플리케이션에서 모델은 데이터베이스의 구조를 정의하는데 사용됩니다. 모델은 models.py 파일에 정의되며, 각 모델 클래스는 데이터베이스의 테이블과 일치합니다.

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=50)
    published_date = models.DateField()

    def __str__(self):
        return self.title

위 예제에서 Book 클래스는 데이터베이스의 테이블로 매핑되고, 각 필드(title, author, published_date)는 해당 테이블의 열로 매핑됩니다.

데이터베이스 연동

Django에서는 데이터베이스 연동을 설정 파일(settings.py)에서 관리합니다. 기본적으로 SQLite가 사용되지만, PostgreSQL, MySQL, Oracle과 같은 다른 데이터베이스를 사용할 수도 있습니다.

# settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

위의 설정은 SQLite 데이터베이스를 사용하도록 하는 예제입니다. 다른 데이터베이스를 사용하기 위해서는 ENGINENAME 값을 해당 데이터베이스에 맞게 수정해야 합니다.

데이터베이스 마이그레이션

모델을 변경하거나 새로운 모델을 추가했을 때, 해당 변경 사항을 데이터베이스에 적용하기 위해 마이그레이션을 수행해야 합니다.

python manage.py makemigrations
python manage.py migrate

위의 명령어는 변경된 모델을 데이터베이스에 적용하기 위해 필요한 마이그레이션 스크립트를 생성하고 적용하는 작업을 수행합니다.

Django에서 모델링과 데이터베이스 연동은 애플리케이션을 개발하는 과정에서 핵심적인 역할을 합니다. 올바르게 모델을 정의하고 데이터베이스와 연동함으로써 데이터를 효과적으로 다룰 수 있습니다.

참고 자료