


주요 기능들은 위와 같고 더 세세히 파고들면 더 많은 기능들이 있다.
위의 주요 기능을 그림으로 표현하면...

✔️ Serializer와 ModelSerializer는 Django의 Form과 ModelForm와 유사하다.
# forms.py(ModelForm 사용시) from django.forms import ModelForm from .models import Post class PostForm(ModelForm): class Meta: model = Post fields = '__all__'
# serializers.py(ModelSerializer 사용 시) from rest_framework.serializers import ModelSerializer from .models import Post class PostSerializer(ModelSerializer): class Meta: model = Post fields = '__all__'
✔️ 서로의 공통점으로는 필드 지정 및 모델로부터 읽어올 수 있고, 입력된 데이터에 대한 유효성 검사를 진행한다.
✔️ 차이점으로는 Form과 ModelForm는 form 태그가 포함된 HTML을 생성하지만, Serializer와 ModelSerializer는 form 데이터가 포함된 JSON 타입의 문자열을 생성한다.
Serializer & ModelSerializer과의 차이점

from rest_framework import serializers
from store.models import Product
#def_49 serializers.py 생성
class ProductSerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = "__all__" #fields = [ "id", "name", "price", "category", "is_sale","sale_price"]
urlpatterns = [
(생략)
path("products/", api_products), #dev_49
]
#def_49
@api_view(['GET'])
def api_products(request):
products = Product.objects.all()
serializer = ProductSerializer(products,many=True)
return Response(serializer.data)
