본문 바로가기

django43

10. Serializer fields Form 클래스의 각 필드는 데이터의 유효성을 검사할 뿐만 아니라 데이터를 "정리"하여 일관된 형식으로 정규화합니다. 시리얼라이저 필드는 기본 값과 내부 데이터 유형 간의 변환을 처리합니다. 또한 입력 값의 유효성을 검사하고 상위 개체에서 값을 검색하고 설정하는 작업도 처리합니다. 참고 : 시리얼라이저 필드는 fields.py에 선언되어 있지만 규칙에 따라 from rest_framework import serializers 를 사용하여 필드를 가져와야 하며 필드를 serializers.으로 참조해야합니다. Core arguments 각 시리얼라이저 필드 클래스 생성자는 최소한 이러한 아규먼트를 사용합니다. 일부 Field 클래스는 추가 필드별 아규먼트를 사용하지만 다음과 같은 내용들은 항상 허용되어야 .. 2021. 7. 16.
9-3 Serializer-3 HyperlinkedModelSerializer HyperlinkedModelSerializer 클래스는 기본 키가 아닌 하이퍼링크를 사용하여 관계를 나타내는 것을 제외하고 ModelSerializer 클래스와 유사합니다. 기본적으로 시리얼라이저는 기본 키 필드 대신 URL필드를 포함합니다. url 필드는 HyperlinkedIdentityField 시리얼라이저 필드를 사용하여 표시되고 모델의 모든 관계는 HyperlinkedRelatedField 시리얼라이저 필드를 사용하여 표시됩니다. 다음과 같이 필드 옵션에 기본키를 추가하여 명시적으로 기본 키를 포함할 수 있습니다. class AccountSerializer(serializers.HyperlinkedModelSerializer): class Met.. 2021. 7. 15.
9-2 Serializers-2 ModelSerializer 종종 Django 모델 정의와 밀접하게 매핑되는 serializer 클래스를 원할 것입니다. ModelSerializer 클래스는 모델 필드에 해당하는 필드가 있는 Serializer 클래스를 자동으로 만들 수 있는 shortcut을 제공합니다. ModelSerializer 클래스는 다음을 제외하고 일반 Serializer 클래스와 동일합니다. 모델에 따라 자동으로 필드셋을 생성합니다. unique_together 벨리데이터와 같은 serializer에 대한 벨리데이터를 자동으로 생성합니다. 여기에는 .create() 및 .update()의 간단한 기본 구현이 포함됩니다. ModelSerializer는 다음과 같이 생성할 수 있습니다. class AccountSerialize.. 2021. 7. 15.
9-1. Serializers Serializers serializer의 유용성을 확장하는 것은 우리가 다루고 싶은 것입니다. 그러나 사소한 문제는 아니며 심각한 디자인 작업이 필요합니다. Serializers를 사용하면 쿼리 셋 및 모델 인스턴스와 같은 복잡한 데이터를 JSON, XML 또는 기타 콘텐츠 유형으로 쉽게 렌더링 할 수 있는 네이티브한 파이썬 데이터 타입으로 변환할 수 있습니다. Serializer는 또한 deserialization을 제공하여 들어오는 데이터를 먼저 확인한 후 구문 분석 된 데이터를 복잡한 형식으로 다시 변환할 수 있습니다. DRF의 serializer는 Django의 Form 및 ModelForm 클래스와 매우 유사하게 작동합니다. 응답 출력을 제어하는 강력하고 일반적인 방법을 제공하는 Seriali.. 2021. 7. 15.
8. Renderers Renderers TemplateResponse 인스턴스를 클라이언트로 반환하려면 먼저 인스턴스를 렌더링해야 합니다. 렌더링 프로세스는 템플릿과 컨텍스트를 중간으로 표현하여 클라이언트에 제공할 수 있는 최종 byte stream으로 변환합니다. REST 프레임워크에는 다양한 media types으로 응답을 반환할 수 있는 여러 기본 렌더러 클래스가 포함되어 있습니다. 또한 고유한 사용자 정의 렌더러를 정의할 수 있으므로 고유한 media type을 유연하게 설계할 수 있습니다. 렌더러 결정 방법 view에 대한 유효한 렌더러 집합은 항상 클래스 목록으로 정의됩니다. view를 입력하려면 DRF가 들어오는 요청에 대해 콘텐츠 협상을 수행하고 요청을 충족하는 가장 적합한 렌더러를 결정합니다. 컨텐츠 협상의 .. 2021. 7. 7.
7. Parsers Parser 시스템 상호 작용 웹 서비스는 단순한 형식보다 복잡한 데이터를 전송하기 때문에 form-encoded보다 더 구조화된 form을 사용합니다. REST 프레임워크에는 다양한 미디어 유형의 요청을 수락할 수 있는 기본 파서 클래스가 다수 포함되어 있습니다. 또한 사용자 정의 구문 분석기를 정의할 수 있어 API에서 허용하는 media types를 유연하게 설계할 수 있습니다. parser 결정하는 방법 view에 유효한 parser 셋은 항상 클래스 목록으로 정의됩니다. request.data에 액세스하면 DRF는 들어오는 요청의 Content-Type 헤더를 검사하고 요청내용을 파싱할 파서를 결정합니다. 참고 : 클라이언트 응용 프로그램을 개발할 때는 HTTP request로 데이터를 전송할 .. 2021. 6. 29.