django rest framework 教程(一)视图

一、概要schema

views

二、概念concept

  • APIView:继承并扩充了django的view

  • ViewSetMixin:重写了as_view方法,提供了http动词到视图中具体方法的绑定,比如get映射到list方法

  • GenericAPIViewSet:通用API view

  • ListAPIView:具体的API view

  • ListModelMixin:提供了list方法,省去了用户自己实现list方法的麻烦,只需要在urls里as_view一下

  • xxxView:用户自定义的view,比如GoodsListView,混合了ListAPIView和若干model mixins

  • xxxViewSet:用户自定义的viewset,比如GoodslistViewSet

三、示例example

class ListUsers(APIView):
    authentication_classes = (authentication.TokenAuthentication,)
    permission_classes = (p  ermissions.IsAdminUser,)
    def get(self, request, format=None):
        usernames = [user.username for user in User.objects.all()]
        return Response(usernames)
class RetrieveUserView(MultipleFieldLookupMixin, generics.RetrieveAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    lookup_fields = ('account', 'username')
class CreateListRetrieveViewSet(mixins.CreateModelMixin,
                                mixins.ListModelMixin,
                                mixins.RetrieveModelMixin,
                                viewsets.GenericViewSet):
    """
    A viewset that provides `retrieve`, `create`, and `list` actions.

    To use it, override the class and set the `.queryset` and
    `.serializer_class` attributes.
    """
    pass
from myapp.views import UserViewSet
from rest_framework.routers import DefaultRouter

router = DefaultRouter()
router.register(r'users', UserViewSet, base_name='user')
urlpatterns = router.urls
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,024评论 3 119
  • 一、基本视图类 (APIView/@api_view) 1、类基础视图(APIView) DRF不同于django...
    入间阅读 4,115评论 0 3
  • “那又怎样”是无所畏惧的胸怀,是勇往直前的豁达,是淡定从容的格局。当我们用最大的声音反复喊出这四个字时,力量...
    欣莼2阅读 395评论 1 4
  • 先晒张成品图! 在网上买了三个南瓜,本打算蒸着吃。 结果蒸出来,发现不是想象的那么面,那么甜。 于是决定用这些南瓜...
    墨香悠然666阅读 520评论 3 10
  • 人微言轻
    吖米吖阅读 367评论 0 0