from rest_framework import serializers
먼저 시리얼라이저는 Django 모델 데이터를 직렬화하거나 역직렬화해서 api 통신하는 데 사용됩니다.
1. UserSerializer(serializers.ModelSerializer): `serializers.ModelSerializer`를 상속받는 클래스입니다. 이 클래스는 Django 모델과 연결된 시리얼라이저로, 모델의 필드와 관련된 직렬화 및 역직렬화 로직을 자동으로 생성해줍니다. `ModelSerializer`는 모델 클래스와 연결하여 필드, 유효성 검사 등을 자동으로 처리합니다.
class UserSerializers(serializers.ModelSerializer):
class Meta:
model = All_data
fields = '__all__'
2. UserSerializer(serializers.HyperlinkedModelSerializer): `UserSerializer`는 `serializers.HyperlinkedModelSerializer`를 상속받는 클래스입니다. 이 클래스는 하이퍼링크를 포함하는 시리얼라이저로, 관계된 모델에 대한 하이퍼링크를 자동으로 생성해줍니다. `HyperlinkedModelSerializer`는 모델 클래스와 연결하여 하이퍼링크를 처리하고 필드, 유효성 검사 등을 자동으로 처리합니다.
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ['url', 'username', 'email', 'groups']
차이점:
- `ModelSerializer`는 모델과 관련된 직렬화 및 역직렬화 로직을 자동으로 생성해줍니다.
`HyperlinkedModelSerializer`는 하이퍼링크를 포함하는 시리얼라이저로, 관계된 모델에 대한 하이퍼링크를 자동으로 생성해줍니다.
- 필드 지정 방식이 다릅니다.
`ModelSerializer`는 `fields = '__all__'`와 같이 `__all__`을 사용하여 모든 필드를 포함시킬 수 있습니다. `HyperlinkedModelSerializer`는 필요한 필드를 직접 명시해야 합니다.
'Programming > 장고(django) - API' 카테고리의 다른 글
장고(django)/ CORS (0) | 2023.09.13 |
---|---|
장고(django)/ REST Framework(viewsets, permissons, routers 관련) (0) | 2023.06.08 |
장고(django)/ json to DB(제이슨 파일을 데이터베이스로) (0) | 2023.06.04 |
장고(django)/ 데이터베이스 연동(mysql) (0) | 2023.06.04 |
장고(django)/ 회원가입 및 로그인 기능(auth 모듈 관련) (0) | 2023.06.04 |