Building APIs with Django and Django Rest Framework (readthedocs.org)
Serializing and Deserializing Data
DRF를 이용할 때 web API를 개발하는 과정이 깔끔해진다.
Serialization and Deserialization
API를 만들기 위해서는 model을 serialize해서 보여주는 시리얼라이저가 필요하다.
데이터베이스에 있는 내용을 네트워크로 통신할 수 있도록 바꾸는 과정은 serialization이라고 한다.
Deserialization은 그 반대 과정이다.
Creating Serializers
from rest_framework import serializers
from .models import Poll, Choice, Vote
class VoteSerializer(serializers.ModelSerializer):
class Meta:
model = Vote
fields = '__all__'
class ChoiceSerializer(serializers.ModelSerializer):
votes = VoteSerializer(many=True, required=False)
class Meta:
model = Choice
fields = '__all__'
class PollSerializer(serializers.ModelSerializer):
choices = ChoiceSerializer(many=True, read_only=True, required=False)
class Meta:
model = Poll
fields = '__all__'
응답으로 보낼 데이터의 형태를 정해주는 하나의 틀
Using the PollSerializer
>>> from polls.serializers import PollSerializer
>>> from polls.models import Poll
>>> poll_serializer = PollSerializer(data={"question":"Mojito or Caipirinha?", "created_by":1})
>>> poll_serializer.is_valid()
True
>>> poll = poll_serializer.save()
>>> poll.pk
1
poll 모델은 user를 갖다쓰므로 무조건 User가 1개 이상이어야 한다.
'Computer Science > BackEnd' 카테고리의 다른 글
Django API #5 | More views and viewsets (0) | 2022.09.12 |
---|---|
Django API #4 | Views and Generic Views (0) | 2022.09.11 |
장고 DRF #6 | Django REST framework ViewSets & Routers (0) | 2022.09.11 |
장고 DRF #5 | Django REST framework Relationships & Hyperlinked APIs (0) | 2022.09.10 |
장고 DRF #3 | Django REST framework Class-based Views (0) | 2022.09.09 |