Django ORM 기본 이해
1. 데이터베이스 설정
settings.py 파일에서 데이터베이스를 설정합니다. 기본값은 SQLite입니다.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
다른 데이터베이스를 사용하려면 다음과 같이 설정을 변경할 수 있습니다.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'USER': 'root',
'PASSWORD': 'password123',
'HOST': 'localhost',
'PORT': 3306,
'NAME': 'my_database',
}
}
MySQL 데이터베이스를 사용하는 경우, mysqlclient 라이브러리가 필요합니다. 설치는 아래 명령어로 가능합니다.
pip install mysqlclient
2. ORM 소개
ORM(Object-Relational Mapping)은 객체와 관계형 데이터베이스 간의 매핑 기술입니다. 이를 통해:
- 테이블을 Python 클래스로 매핑
- 필드를 클래스 속성으로 매핑
- 레코드를 클래스 인스턴스로 매핑
3. 테이블 조작
models.py 파일에서 모델을 정의합니다.
from django.db import models
class UserProfile(models.Model):
username = models.CharField(max_length=50, verbose_name='사용자 이름')
password = models.CharField(max_length=50, verbose_name='비밀번호')
age = models.IntegerField(verbose_name='나이')
데이터베이스 마이그레이션을 위해 다음 명령어를 실행합니다.
python manage.py makemigrations
python manage.py migrate
4. 필드 조작
필드를 추가하거나 수정하려면 모델에 새로운 필드를 선언하고 마이그레이션을 수행해야 합니다.
from django.db import models
class SampleModel(models.Model):
name = models.CharField(max_length=100)
created_date = models.DateTimeField(auto_now_add=True)
5. 데이터베이스 조작
Django ORM을 사용하여 데이터를 추가, 조회, 업데이트 및 삭제할 수 있습니다.
# 데이터 추가
SampleModel.objects.create(name='Example')
# 모든 데이터 조회
all_entries = SampleModel.objects.all()
# 특정 조건으로 데이터 조회
filtered_entry = SampleModel.objects.filter(name='Example').first()
# 데이터 업데이트
SampleModel.objects.filter(id=1).update(name='Updated Example')
# 데이터 삭제
entry_to_delete = SampleModel.objects.get(id=1)
entry_to_delete.delete()