日本語版
最新ニュース
世界

パート 2: Django REST フレームワークのシリアライザー クラスのクイック ガイド |アルタフ カーン著 | 2024 年 11 月

シリアライザークラスDjango REST フレームワーク (DRF) では、シリアライザー クラスが複雑なデータ型 (Django モデルやクエリセットなど) とネイティブ Python データ型 (辞書など) の間の変換を処理します。これにより、JSON、XML、またはその他のコンテンツ タイプに簡単にレンダリングできます。 。また、逆シリアル化も処理します。つまり、受信した JSON またはその他の形式を Python データに変換し、検証します。1.フィールドシリアライザー フィールドは、Django フォームと同様に定義されます。期待するデータのタイプとその処理方法を宣言します。例えば#serializers.pyfrom rest_framework import serializersclass BookSerializer(serializers.Serializer):title = serializers.CharField(max_length=100)author = serializers.CharField(max_length=100)published_date = serializers.DateField()このシリアライザーは、title、author、およびpublished_dateフィールドを処理し、それらをstrやdateなどのPythonタイプにマップします。2. 検証シリアライザーはフィールドの検証を自動的に提供します。個々のフィールドまたはオブジェクト全体に対してカスタム検証ロジックを定義することもできます。フィールドレベルの検証#serializers.py from rest_framework import serializersclass BookSerializer(serializers.Serializer): title…

パート 2: Django REST フレームワークのシリアライザー クラスのクイック ガイド |アルタフ カーン著 | 2024 年 11 月

1732332890
2024-11-23 03:29:00

シリアライザークラス

Django REST フレームワーク (DRF) では、シリアライザー クラスが複雑なデータ型 (Django モデルやクエリセットなど) とネイティブ Python データ型 (辞書など) の間の変換を処理します。これにより、JSON、XML、またはその他のコンテンツ タイプに簡単にレンダリングできます。 。また、逆シリアル化も処理します。つまり、受信した JSON またはその他の形式を Python データに変換し、検証します。

1.フィールド

シリアライザー フィールドは、Django フォームと同様に定義されます。期待するデータのタイプとその処理方法を宣言します。例えば

#serializers.py

from rest_framework import serializers

class BookSerializer(serializers.Serializer):
title = serializers.CharField(max_length=100)
author = serializers.CharField(max_length=100)
published_date = serializers.DateField()

このシリアライザーは、title、author、およびpublished_dateフィールドを処理し、それらをstrやdateなどのPythonタイプにマップします。

2. 検証

シリアライザーはフィールドの検証を自動的に提供します。個々のフィールドまたはオブジェクト全体に対してカスタム検証ロジックを定義することもできます。

フィールドレベルの検証

#serializers.py 
from rest_framework import serializers

class BookSerializer(serializers.Serializer):
title = serializers.CharField(max_length=100)
author = serializers.CharField(max_length-100)
published_date = serializers.DateField()

def validate_title(self, value):
if 'Django not in value:
raise serializers.ValidationError( "Book title must contain 'Django".")
return value

フィールドレベルの検証を利用して、個々のフィールドの検証を追加できます。

3. 方法

Serializer クラスには、データのシリアル化および逆シリアル化のプロセスを処理するいくつかの便利なメソッドが含まれています

#serializers.py

from rest_framework import serializers

class BookSerializer(serializers.Serializer):
title = serializers.CharField(max_length=100)
published_date = serializers.DateField()
author = serializers.CharField(max_length=100)

def to_representation(self, instance):
representation = super().to_representation(instance)
representation['custom_field'] = 'Custom Data'
return representation

4. シリアル化と逆シリアル化

Serializer クラスは、シリアル化と逆シリアル化に役立ちます。これは、Python オブジェクト (モデルなど) をレンダリング可能な形式 (JSON など) に変換する、またはその逆の変換を行うプロセスです。

#Serialization Process

book = Book(title="Learning Django",
author="John", published_date="2023-01-01")

serializer = BookSerializer(book)

#Returns a dictionary of the sertalized data

print(serializer.data)

#DeSerialization Process

data ={'title': 'Learning Django', 'author': 'John','published_date': '2023-01-01'}
serializer = BookSerializer(data-data)

if serializer.is_valid():

#Validated data is now available in serializer.validated data

book = serializer.save()

# This would save the book instance to the database

#パート #Django #REST #フレームワークのシリアライザー #クラスのクイック #ガイド #アルタフ #カーン著 #年 #月

執筆者について: nipponese

Nipponese News編集部は、国内外のニュースを日本語で分かりやすくお届けします。