✅ DRF 복습 ✅
🔍 Serializer의 기능
-> 클라이언트와 서버 API 간 데이터 양식을 맞춰주는 변환기
1. Serialize(직렬화)
- Django 프로젝트에서 내가 만든 모델로부터 뽑은 queryset, 즉 모델 인스턴스를 JSON 타입으로 바꾸는 것.
- Django 모델을 JSON으로 변환하기 위한 틀.
- Django 모델은 데이터베이스 테이블을 추상화한 개념이며, Django의 ORM을 통해 파이썬 문법으로 데이터를 처리할 수 있다. 그래서 Django에서의 데이터는 JSON이나 이런 포맷이 아닌, 파이썬 객체의 형태로 저장이 된다.
- API를 통해 데이터를 클라이언트에 보내주기 위해서는 파이썬 데이터 객체를 읽을 수 있는 문자열(JSON 등)로 변환하여 보내줘야 한다.
2. Deserialize(역직렬화)
반대로 클라이언트가 데이터를 DRF 서버에 보내주는 경우에는 JSON 등 문자열로 된 데이터를 파이썬 데이터로 변환해주어야 한다.
👩🏻💻 DRF 를 이용한 TodoList API를 만들어보았다.
https://github.com/hyunjooooojung/drf_todolist.git
GitHub - hyunjooooojung/drf_todolist
Contribute to hyunjooooojung/drf_todolist development by creating an account on GitHub.
github.com
# todo/serializers.py
from rest_framework import serializers
from .models import Todo
class TodoSerializer(serializers.ModelSerializer):
class Meta:
model = Todo
fields = ('id', 'title', 'complete', 'important')
# todo list 상세 조회
class TodoDetailSerializer(serializers.ModelSerializer):
class Meta:
model = Todo
fields = ('id', 'title', 'description', 'created_at', 'complete', 'important')
# todo list 작성하기
class TodoCreateSerializer(serializers.ModelSerializer):
class Meta:
model = Todo
fields = ('title', 'description', 'important')
'TIL(Today I Learned)' 카테고리의 다른 글
221117 TIL (0) | 2022.11.17 |
---|---|
221116 TIL (0) | 2022.11.16 |
221114 TIL (0) | 2022.11.14 |
221111 TIL (0) | 2022.11.11 |
221110 TIL (0) | 2022.11.10 |