Serialize
모델 인스턴스나 queryset과 같은 데이터를 JSON 형식의 파일로 변환하는 작업
Deserialize
JSON형식의 데이터를 정의된 포맷에 맞추어 다시 모델 인스턴스로 변환하는 작업
from rest_framework import serializers
from polls.models import Question
class QuestionSerializer(serializers.Serializer) :
id = serializers.IntegerField(read_only=True)
question_text = serializers.CharField(max_length=200)
pub_date = serializers.DateTimeField(read_only=True)
def create(self, validated_data) :
return Question.objects.create(**validated_data)
def Update(self, instance, validated_data) :
instance.question_text = validated_data.get('question_text', instance.question_text) +'[시리얼라이저에서 업데이트]'
instance.save()
return instance
ModelSerializer
기본적으로 create()와 update() 메서드가 구현되어 있어, 추가로 코드를 작성해주지 않아도 그 기능을 사용할 수 있다.
위의 코드보다 훨씬 간편해짐
from rest_framework import serializers
from polls.models import Question
class QuestionSerializer(serializers.ModelSerializer) :
class Meta :
model = Question
fields = ['id', 'question_text', 'pub_date']
http메소드
참고 https://developer.mozilla.org/ko/docs/Web/HTTP/Methods
데이터 생성(Create) : POST
데이터 조회(Read) : GET
데이터 업데이트(Update) : PUT
데이터 삭제(Delete) : DELETE
HTTP Status Code
200번대 : 정상적인 결과
- 200 OK
- 201 CREATED
- 204 NOT FOUND
400번대 : 사용자의 잘못된 요청
- 400 BAD REQUEST
- 404 NOT FOUND
500번대 : 서버 내부의 오류
mixin,generics 라이브러리를 통해 같은 기능을 하는 코드를 훨씬 더 코드를 간결하게 만들 수 있다.
'Django' 카테고리의 다른 글
Django 기본 (0) | 2024.04.28 |
---|---|
테스트 기능(Test) (0) | 2024.04.28 |
유저(User)와 기능(투표, 질문) (0) | 2024.04.28 |
뷰(View)와 템플릿(template) (1) | 2024.04.28 |