ココア ペブルズが現チャンピオンであるプログラマー向けの究極のシリアルについて知りたい場合は、適切なブログ投稿を参照してください。冗談です!今日は、さらに優れたもの、Django シリアライザーについて詳しく説明します。これにより、お気に入りのシリアルよりもデータの処理がスムーズになります。本格的に取り組む準備はできていますか?さあ行こう! ?
Django の開発に取り組んでいるなら、おそらくシリアライザーに出会ったことがあるでしょう。一見すると、特にドキュメントを調べたり、チュートリアル ビデオを見たりしている場合には、複雑で恐ろしい概念のように見えるかもしれません。しかし、心配しないでください。実際には、Django シリアライザーは見た目よりもはるかに単純です。 Django REST フレームワークのこの重要なコンポーネントを分解して、わかりやすく説明しましょう。
本質的に、Django シリアライザーは、Django モデルなどの複雑なデータ型を、JSON、XML、またはその他のコンテンツ タイプに簡単にレンダリングできる Python データ型に変換するツールです。また、逆の動作も行い、受信データを JSON などの形式から Django オブジェクトに変換し直します。
簡単に言うと、シリアライザーは Django モデルとフロントエンド (またはその他のコンシューマー) が期待するデータとの間のギャップを埋めます。
図書館内の本を表す基本的な Django モデルから始めましょう:
from django.db import models class Book(models.Model): title = models.CharField(max_length=100) author = models.CharField(max_length=100) published_date = models.DateField() isbn = models.CharField(max_length=13)
このモデルは単純です。本のタイトル、著者、発行日、ISBN のフィールドがあります。次に、このモデルのシリアライザーを作成しましょう。
このモデルを JSON (またはその他の形式) に変換するには、Django シリアライザーを使用します。これを行う簡単な方法は、serializers.ModelSerializer:
を使用することです。
from rest_framework import serializers from .models import Book class BookSerializer(serializers.ModelSerializer): class Meta: model = Book fields = ['title', 'author', 'published_date', 'isbn']
ここで、BookSerializer は Serializers.ModelSerializer を継承し、Book モデルのシリアライザーを自動的に作成します。 Meta クラスは、Django にどのモデルをシリアル化し、どのフィールドを含めるかを指示します。
さらに制御が必要な場合はどうすればよいですか?たとえば、ISBN を検証する場合、またはカスタム フィールドを追加する場合は、代わりに Serializers.Serializer を使用することがあります。方法は次のとおりです:
class CustomBookSerializer(serializers.Serializer): title = serializers.CharField(max_length=100) author = serializers.CharField(max_length=100) published_date = serializers.DateField() isbn = serializers.CharField(max_length=13) def validate_isbn(self, value): if len(value) != 13: raise serializers.ValidationError("ISBN must be 13 characters long") return value
この例では、CustomBookSerializer を使用して、各フィールドとその処理方法を完全に制御できます。 ISBN が正確に 13 文字であることを確認するなど、カスタム検証を追加できます。
Django シリアライザーは最初は複雑に見えるかもしれませんが、適切なアプローチを使用すれば、アプリケーションでデータを処理するための非常に強力なツールになります。 Serializers.ModelSerializer を使用して迅速かつ簡単にシリアル化する場合でも、serializers.Serializer を使用してより詳細な制御を行う場合でも、Django REST フレームワークが対応します。これらのツールを試し続ければ、Django 開発がよりスムーズかつ効率的に行われることがすぐにわかります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3