queryset,모델 인스턴스 같은 복잡한 데이터를 JSON,XML 등의 콘텐츠 타입으로 쉽게 변환할 수 있도록 함
가상환경 생성 후 필요한 패키지들을 설치해줍니다.
pip install django
pip install djangorestframework
pip install pygments #코드 하이라이팅을 위해 필요한 패키지
패키지 설치 후 새로운 프로젝트를 생성해 줍니다.
django-admin startproject tutorial
cd tutorial
앱을 생성해 줍니다.
python manage.py startapp snippets
프로젝트 앱 생성 후 디렉토리 구조입니다.
snippets
앱과 rest_framework
앱을 INSTALLED_APPS에 추가해줍니다.
코드 스니펫을 저장하는 간단한 snippet모델을 생성합니다.
python manage.py makemigrations snippets
python manage.py migrate
snippet/serializers.py
파일을 생성 후 아래 내용을 추가해 줍니다.
인스턴스 생성
인스턴스 serializing
이 시점에서 모델 인스턴스를 파이썬 네이티브 데이터 유형으로 변환했습니다. serialization 프로세스를 마무리하기 위해 데이터를 json으로 렌더링합니다.
Deserialization
Deserialization도 유사합니다. json으로 렌더링 되었던 content를 BytesIO로 전환한후에 stream에 담아줍니다.
그리고 stream을 parse하여 파이썬 네이티브 데이터 유형으로 바꿔줍니다.
그리고 난 후, 파이썬 네이티브 데이터 유형을 완전히 채워진 객체 인스턴스로 복원합니다.