ジャンゴ・静止フレームワークのビューとURL

ジャンゴ・静止フレームワークのビュー

GenericView

class GenericView(GenericAPIView):
    queryset = models.Role.objects.all()
    serializer_class = serializers.RoleSerializer
    pagination_class = PageNumberPagination

    def get(self, request):
        # 获取数据
        data = self.get_queryset()
        # 获取分页数据
        page_data = self.paginate_queryset(data)
        # 获取序列化数据
        resp = self.get_serializer(instance=page_data, many=True)
        return Response(resp.data)
  • 元のパッケージApiViewにほとんどないGenericView、使用三つの主要な方法があります
    • get_queryset :クエリセットオブジェクトのクエリを取得します。
    • paginate_queryset:、ページの後のオブジェクトを取得しますが、パラメータオブジェクトを受け入れる必要があるクエリセット
    • get_serializer:直列化されたデータを、シリアライズされたオブジェクトの開発と多くのパラメータの開発

GenericViewSet

class GenericView(GenericViewSet):

    def list(self, request):
        return Response('list')
from django.conf.urls import re_path

from . import views

urlpatterns = [
    re_path(r'^index/', views.GenericView.as_view({'get': 'list'})),
]
  • GenericViewSet GenericViewは、実質的に差がないと使用、対応する要求方法の唯一の機能は、カスタムを必要
    • URL as_viewメソッドは、パラメータ辞書を渡す必要があり、辞書はリクエストメソッドに対応するキーで、値が要求ハンドラメソッドに対応しています

ModelViewSet

class GenericView(ModelViewSet):
    queryset = models.Role.objects.all()
    serializer_class = serializers.RoleSerializer
    pagination_class = PageNumberPagination
  • ModelViewSetは、より多くの先輩、調査の方法のデフォルト実装への追加や削除は、それだけに対応する属性を設定する必要があります

URL

from django.conf.urls import re_path

from . import views

urlpatterns = [
    re_path(r'^index/', views.GenericView.as_view({'get': 'list', 'post': 'update'})),
]

自動経路生成

from django.urls import path, include, re_path
from rest_framework import routers

from . import views

route = routers.DefaultRouter()

route.register('index', views.GenericView)

urlpatterns = [
    re_path('', include(route.urls))
]

おすすめ

転載: www.cnblogs.com/ivy-blogs/p/11665535.html
おすすめ