티스토리 뷰
Django Rest Framework
Django 안에서 RESTful API 서버를 쉽게 구출할 수 있도록 도와주는 오픈소스 라이브러리
- 웹 브라우저 API는 개발자들에게 유용성을 가져다 준다
- Serialize 기능 제공 (DB Data -> JSON)
- Serialization은 ORM과 non-ORM 데이터 소스를 모두 지원
- View를 커스터마이징 해서 사용할 수 있다
- 관련 도큐먼트가 많다
DRF의 큰 기능은 Models를 serializers로 변환하는 것
- Serializer(직렬화)
Serialize: 추상적인 Object를 구체적이고, 저장가능하고, 전송가능한 텍스트 파일로 바꿔주는 것
말 그대로 직렬화하는 클래스로서, 사용자의 DB안에 사용자 프로필 사진, 이메일, 이름, 성별이 있다고 가정하면 사용자 모델 인스턴스를 JSON 형태 혹은 Dictionary 형태로 직렬화 할 수 있다.
왜 직렬화를 하는 것일까?
Object는 메모리에 존재하고, 추장적인데 비해서 String or bytes 데이터는 드라이브에 저장 할 수 있고,
통신선으로 전송도 가능하기 때문이다.
간단한 Serialize 과정
from django.db import models
class User(models.Model):
id = mod
email = models.EmailField()
password = models.CharField(max_length=1000, null=True)
def __str__(self):
return self.email
from rest_framework import serializers
from .models import User
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
첫 번째 코드블럭은 Serialize를 하지 않은 Model의 코드이다
두 번째 코드블럭을 보면 UserSerializer라는 클래스를 생성한 후 ModelSerializer를 상속한다
ModelSerializer 클래스를 사용하면 Model(User)에 정의한 필드에 해당하는 값을 Serializer 할 수 있다.
[DRF 학습 포인트]
- General Serializer와 ModelSerializer의 차이는 무엇인가?
- ModelSerializer에서 추가할 필드와 다른 모델을 참조하는 필드는 각 관계별(1:1, 1:N, N:N)로 어떻게 정의해야 하는가?
- GenericView+Mixin VS Concrete View는 각각 코드의 처리 로직이 어떻게 되는가?
- Concrete View 작성 시, override는 어떤 경우에 해야 하는가?
'Django' 카테고리의 다른 글
[Django] Cookie SameSite 이슈 (0) | 2022.02.04 |
---|---|
[Django] User Authenticate / 유저 인증 (0) | 2022.01.30 |
[Django] Django ModelSerializer (0) | 2022.01.18 |
[Django] Django View (Class-based view, Function-based view) (0) | 2022.01.17 |
[Django] Django Serializers (0) | 2022.01.16 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 피움 6주차 회고
- 파이썬
- 스프링 프레임워크
- 8주차 회고
- ZNS
- ZNS SSD
- jpa
- dm-zoned 코드분석
- 프로젝트
- 3차 데모데이
- 백준
- 우테코
- 스프링 Logback
- 우테코 회고
- CI/CD
- 런칭 페스티벌
- dm-zoned
- java
- 2차 데모데이
- Spring
- 5주차 회고
- 환경 별 로깅 전략 분리
- 팀프로젝트
- 회고
- 스프링 부트
- 네트워크
- 알림기능개선기
- 스프링MVC
- 알림개선기
- 피움
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함