본문 바로가기
TIL(Today I Learned)

221115 TIL

by JUNG씨 2022. 11. 15.

✅ 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