장바구니는 전자 상거래 웹 애플리케이션에서 사용자가 원하는 상품들을 임시로 저장하는 기능입니다. Django REST framework는 이러한 장바구니 기능을 구현하기에 적합한 강력한 도구입니다. 이번 블로그 포스트에서는 Django REST framework를 사용하여 장바구니 기능을 처리하는 방법에 대해 알아보겠습니다.
1. 모델 설계
장바구니를 구현하기 위해 먼저 필요한 모델을 설계해야 합니다. 예를 들어, 상품(Product)과 장바구니 아이템(CartItem)을 다음과 같이 정의할 수 있습니다.
from django.db import models
class Product(models.Model):
name = models.CharField(max_length=255)
price = models.DecimalField(max_digits=10, decimal_places=2)
# 추가 필드들...
class CartItem(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
quantity = models.IntegerField(default=1)
# 추가 필드들...
위의 코드에서 CartItem
모델은 Product
모델과의 관계를 나타내기 위해 product
필드를 사용합니다. quantity
필드는 장바구니에 담긴 특정 상품의 수량을 나타냅니다.
2. Serializer 작성
다음으로, Django REST framework의 Serializer를 사용하여 모델 데이터를 JSON 형식으로 직렬화해야 합니다. CartItem
모델의 Serializer는 다음과 같이 작성할 수 있습니다.
from rest_framework import serializers
from .models import CartItem
class CartItemSerializer(serializers.ModelSerializer):
class Meta:
model = CartItem
fields = ['id', 'product', 'quantity']
위의 코드에서 Meta
클래스는 CartItem
모델과 CartItemSerializer
를 연결해 줍니다. 어떤 필드를 직렬화할지 fields
속성에서 정의할 수 있습니다.
3. ViewSet 작성
이제 ViewSet을 작성하여 API 엔드포인트를 정의해야 합니다. CartItemViewSet
은 장바구니 아이템에 대한 CRUD(Create, Retrieve, Update, Delete) 작업을 처리합니다.
from rest_framework import viewsets
from .models import CartItem
from .serializers import CartItemSerializer
class CartItemViewSet(viewsets.ModelViewSet):
queryset = CartItem.objects.all()
serializer_class = CartItemSerializer
위의 코드에서 queryset
속성은 모든 CartItem
개체를 가져오고, serializer_class
속성은 CartItemSerializer
를 사용하여 데이터를 직렬화합니다.
4. URL 설정
마지막으로, 장바구니에 대한 URL을 설정해야 합니다. urls.py
파일을 열고 다음과 같이 URL 패턴을 추가하세요.
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import CartItemViewSet
router = DefaultRouter()
router.register(r'cartitems', CartItemViewSet)
urlpatterns = [
# 다른 URL 패턴...
path('api/', include(router.urls)),
]
위의 코드에서 router.register()
메서드를 사용하여 CartItemViewSet
을 cartitems/
엔드포인트에 매핑합니다. 이제 /api/cartitems/
로 요청을 보내면 장바구니 아이템에 대한 CRUD 작업을 수행할 수 있습니다.
마무리
이렇게 Django REST framework를 사용하여 장바구니 기능을 처리하는 방법을 소개했습니다. Django REST framework의 강력한 기능을 활용하여 사용자에게 편리한 장바구니 기능을 제공할 수 있습니다. 자세한 내용은 Django REST framework 공식 문서를 참조해 주세요.
참고 자료: