P11 Django-DRF (ModelViewSet): CRUD 関数を迅速に構築する
Web アプリケーション開発では、データの作成、読み取り、更新、削除 (CRUD: Create、Read、Update、Delete) が必要になることがよくあります。Django REST フレームワーク (DRF) は、 を使用してこれらの一般的な操作を管理する効率的な方法を開発者に提供しますModelViewSet
。ModelViewSet
このブログでは、CRUD 機能を備えた Web アプリケーションを迅速に構築するための基本的な概念、機能、およびその使用方法を紹介します。
ModelViewSetとは何ですか?
ModelViewSet
これは、Django REST フレームワークによって提供される強力なビューセット クラスであり、作成、読み取り、更新、削除などの一般的なモデル操作メソッドをカプセル化します。これを使用するとModelViewSet
、開発者は同様のコードを繰り返し記述することなく、これらの操作を簡単に実装できます。
ModelViewSet
次のクラスから継承されます。
GenericViewSet
: 特定の機能の実装を容易にするための共通の表示メソッドのセットを提供します。ListModelMixin
:list
リソースリストを取得するためのメソッドを提供します。RetrieveModelMixin
:retrieve
単一のリソースに関する詳細情報を取得するメソッドを提供します。CreateModelMixin
:create
リソースを作成するためのメソッドを提供します。UpdateModelMixin
:update
リソースを更新するためのメソッドを提供します。DestroyModelMixin
:destroy
リソースを削除するためのメソッドを提供します。
さらに、開発者はメソッド/関数をカスタマイズして の機能を拡張することもできますModelViewSet
。
ModelViewSetの特徴
ModelViewSet
主な特徴は以下のとおりです。
- CRUD 関数を迅速に構築する
queryset
:および属性を構成するだけでserializer_class
、デフォルトの追加、削除、変更、およびクエリ関数を取得できます。 - Django の規則に従う:
ModelViewSet
Django フレームワークの規則とベスト プラクティスに従って、コードの一貫性と保守性を確保します。 - さまざまなWebアプリケーションに最適:ブログシステム、電子商取引プラットフォーム、ソーシャルネットワークなどのさまざまな種類のWebアプリケーションに適しており、開発効率が向上します。
ModelViewSetの使い方は?
これを使用するにはModelViewSet
、まずビュー クラスのプロパティをqueryset
クエリ対象のオブジェクトのコレクションに設定し、そのserializer_class
プロパティを対応するシリアライザー クラスに設定する必要があります。以下に例を示します。
from rest_framework.viewsets import ModelViewSet
class YourModelViewSet(ModelViewSet):
queryset = YourModel.objects.all()
serializer_class = YourModelSerializer
使用するとModelViewSet
、作成、読み取り、更新、削除などのデフォルトの CRUD メソッドが自動的に取得されます。これをビュー クラスで使用する方法を示す例を次に示しますModelViewSet
。
from rest_framework.decorators import action
class GoodsCategoryViewSet(ModelViewSet):
queryset = GoodsCategory.objects.all()
serializer_class = GoodsCategorySerializer
@action(detail=False, methods=['get'])
def latest(self, request):
latest_obj = GoodsCategory.objects.latest('id')
print(latest_obj)
return Response("你调用了自定义的函数")
上の例では、GoodsCategoryViewSet
という名前のビュー クラスを作成し、クエリするデータセット ( queryset
) とシリアライザー クラス ( serializer_class
) を設定しました。さらに、カスタム関数を定義しlatest
、@action
デコレーターを使用してビュー クラスにバインドすることで、ビューの機能を拡張します。
結論
ModelViewSet
これは、開発者が CRUD 機能を備えた Web アプリケーションを迅速に構築できるようにする DRF の強力なツールです。開発者は、適切な構成queryset
とserializer_class
属性により、データの追加、削除、変更、クエリ操作を簡単に実装でき、開発効率を向上できます。さらに、DRF は、Web アプリケーション開発をより便利かつ効率的にするための他の多くの機能と拡張機能も提供します。ModelViewSet
このブログが、開発者がその使用法と利点をより深く理解し、実際のプロジェクトに適用するのに役立つことを願っています。