DRF tutorial

이재문·2022년 2월 25일
0

DRF의 시작

Django에서 RESTapi로 웹 서버 만들어 개발을 해왔다.
찾아보니 Django Rest Framework로 더 좋은 프레임워크가 있는 것을 알았다. 그래서 좀 더 심화적으로 학습하기 위해 DRF를 공부하려고 한다.
Django를 처음 공부 할 때 공식문서를 보지 않고 공부했더니 내가 몰랐던 기능이 많았다. 그래서 이번 DRF는 공식문서를 기본으로 공부를 할 예정이다.
Tutorial로 시작해서 기업과제까지 DRF로 진행할 예정이다.

Serialization

아무것도 모르는 상태에서 '직렬화'라는 단어를 들었을 때 나는 한참동안 이해를 못 했다. 튜토리얼과 검색을 하며 정보를 짜집기를 했을 때 이해를 했다.
내가 비전공자이기 때문에 지식이 부족해 이해를 쉽게 못했다고도 생각한다.
뿐만아니라 스터디 팀원들 또한 쉽게 이해를 하지 못했다. 그래서 나는 최대한 이해하기 쉽도록 설명한 것을 그대로 여기에 작성할것이다.

직렬화란?

간단하게 이야기하면 DB의 데이터를 JSON형식으로 바꿔주는 것이다.
처음엔 나도 이렇게 설명을 들었다. 하지만 이해를 못했다.(이제는 이해했지 않을까?)
간단히 이야기하면 이해하기 어렵기 때문에 예시를 들면서 아래에서 설명하겠다.

예시

나는 class형식의 view작성을 많이 사용해서 class형식을 예로 들어 설명하겠다.
우리는 django에서 아래의 예)와 같은 형식으로 view를 작성했을 것이다.
예)

class 명
	def 함수명
    여러가지 변수s
    ···
    view 로직s
    ···
    응답 값 form
    ···
    return 응답방식 및 메세지

나는 DRF를 쓰기 전 응답 값 form을 작성 할 때 필요한 응답 값의 필요 양에따라 최소 코드가 한줄씩 늘어났고, 응답 값을 일일이 DB경로를 작성했다.
DRF serializer를 사용하며 우리는 응답 값 form과 응답방식을 간단하게 만들 수 있다.
serializer의 사용방법이 modelserializerserializer로 크게 두가지 방식이 있다.

  • serializer
    serializers.py 파일에 하나의 class속에
    model, serializer, view를 한번에 작성하여 사용하는 방법
  • modelserializer
    models.py,serializers.py,views.py 파일에
    각각의 자리에 맞게 작성하여 사용하는 방법

나는 modelserializer로 설명하겠다.

  • models.py
class SnippetSerializer(serializers.ModelSerializer):
    class Meta:
        model = Snippet
        fields = ['id', 'title', 'code', 'linenos', 'language', 'style']
  • serializers.py
코드를 입력하세요
  • views.py
profile
이제부터 백엔드 개발자

0개의 댓글