django-rest-framework学习初体验-01-27

django-rest-framework

类视图

继承:主要由三个

from rest_framework import mixins, generics, viewsets, permissions

每个类视图都必须由apiview,把类视图解析成视图函数用,再集成其他的mixins,也有框架自己集成好的,用viewsets

1. mixins
    里面有集成好的各种方法,有:list/retrieve/create/update/destory
    也有组合好的
    必须和apiview(viewsets.GenericsAPIView)配合使用,两个都得有
2. generics
    里面主要是封装了mixins,有几种简单的组合,可以方便使用,注意必须和viewsets配合使用
    ListAPIView / RetrieveAPIView / CreateAPIView / ListCreateAPIView .....
3. viewsets
    里面页由封装的mixins和APIView,如:ModelAPIView把所有的方法(5种)都写到了里面,当然还有其他组合,其他两项都必须和viewsets配合使用

参数

  1. queryset 是能够操作的查询集
  2. permission_classes 是权限组,元组,可以自定义权限类,自定义要继承自permissions.BasePermission

    
    
    # request是请求,view是视图函数,obj是操作的对象
    
    class MyPermission(permissions.BasePermission):
        def has_object_permission(self, request, view, obj):
            return obj.user == request.user
    
    # 这个类意思是:请求user必须是obj的user才能操作
    
    # 使用方法
    permission_classes = (MyPermission,)
    
  3. serializer_class = UserInfoSerializer
    处理函数的serializer,可以给同一个类视图中不同方法不同视图,就是改写视图方法,记着把context写进去,不然图片url会不全

router 路由注册

from rest_framework import routers

  1. 生成路由

    router = routers.SimpleRouter()

  2. 注册视图

    router.register(r’users’, views.UserInfoView)

  3. 添加到url

    urlpatterns += router.urls

  4. router的坑

    类视图函数继承as_view函数的时候最好用viewsets.GenericViewSet,否则可能会报错,不要用generic.GenericApiView

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值