본문 바로가기

Tech/REST Framework

3. Django RestFramework - Serializer 만들기

1. Serializers.py 만들기

json과 같은 파일이 REST로 통신하게 하려면 Serializer를 만들어줘야 한다

뭔가 어려운데 내가 BAT라고 상대방에게 알려주고 싶은데 한번에 한 문자만 보내야 한다고 해보면

B를 보내고 A를 보내고 T를 보내게 된다.

근데 어떤 문제나 구조 때문에 받는 쪽에서 BAT를 TAB로 이해한다거나 ABT로 받는다면 안되지 않겠는가?

이를 방지하기 위해 Serializer라는 것이 그 역할을 해준다


serializer는 전에 생성한 App인 AppName 밑에 폴더에 serializers.py라는 파일을 만든 후 아래 내용을 구현한다


from AppName.models import ForcastData
from rest_framework import serializers


class ForcastDataSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = ForcastData
fields = ('timestamp', 'POP', 'PTY', 'REH',
'SKY', 'T3H', 'UUU', 'VEC', 'VVV', 'WSD')


뭔가 어렵지만 이전 챕터의 model.py 와 Database에 저장된 구조의 내용들이 보인다


2. views.py 만들기

AppName 폴더안에 보면 views.py는 이미 생성되어 있다.

파일을 열어서 아래와 같이 수정해주자


from rest_framework import viewsets
from AppName.serializers import ForcastDataSerializer
from AppName.models import ForcastData
from datetime import datetime

class ForcastDataViewSet(viewsets.ModelViewSet):
queryset = ForcastData.objects.all().reverse()[0:1]
serializer_class = ForcastDataSerializer