DRF的GenericAPIView官网:https://www.django-rest-framework.org/api-guide/generic-views/#genericapiview #使用二级视图GenericAPIView实现列表视图classBookListGenericAPIView(GenericAPIView): #提供公共的属性, 应该是默认成员变量 ---> 潜规则queryset =BookInfo.objects.all() serializer_class=BookInfoModelSerialize...
ViewSet 和 APIView ViewSet 和 APIView 的区别: ViewSet 继承于 APIView 的同时,多了一个 ViewSetMixin ViewSetMixin 多了一个 .as_view() 方法,可将 get、post 等绑定到指定方法上 ViewSet 需要借助 router 实现配置 url ViewSetMixin 还多了一个 .initialize_request() initialize_request 给 request 绑定了很...
其中,APIView与GenericAPIView是基于类开发模式下的两个关键组件,它们在实现API功能时具有一定的差异性。APIView为开发者提供了一种基本的视图实现方式,它与Django的View类相似,简化了API的处理流程。通过继承APIView,开发人员可以方便地实现特定的HTTP请求处理逻辑,如GET、POST、PUT、DELETE等。而GenericAP...
通过APIView实现课程列表页 """ courses=Course.objects.all() serializer=CourseSerializer(courses,many=True) returnResponse(serializer.data) #在APIView这个例子中,调用了drf本身的serializer和Response。 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. APIView与View的不同之处在于: 请求和返...
一.GenericAPIView基类# GenericAPIView是继承APIView的,完全兼容APIView # 重点:GenericAPIView在APIView基础上完成了哪些事? 1)get_queryset():从类属性queryset中获得model的queryset数据 2)get_object():从类属性queryset中获得model的queryset数据,再通过有名分组pk确定唯一操作对象 3)get_serializer():从类属性...
APIView:DRF提供的所有视图的基类,继承View并扩展,具备了身份认证、权限检查、流量控制等功能。 GenericAPIView:对APIView更高层次的封装,例如增加分页、过滤器 GenericViewSet:继承GenericAPIView和ViewSet ViewSet:继承APIView,并结合router自动映射路由 ModelViewSet:继承GenericAPIView和五个扩展类,封装好各种请求,更加完善,...
4、类视图APIViewDRF中对Django的类视图做了更好的封装,在Django的View的基础上做了更多的功能扩展Django提供的类视图是rest_framework.views.APIView① APIView与View的区别 传入到视图方法中的是REST framework的Request对象 视图方法可以返回REST framework的Response对象 任何APIException异常都会被捕获到,并且处理成合适...
classBookGenericView(GenericAPIView,'继承个类中有5个接口存在'):queryset=models.Book.objects.all()serializer_class=serializer.BookModelSerializer Ⅲ 解决路由问题 urls.py路由 fromdjango.contribimportadminfromdjango.urlsimportpath,re_pathfromapp01importviewsurlpatterns=[path('admin/',admin.site.urls),#...
ViewSet:继承自APIView与ViewSetMixin,作用也与APIView基本类似,提供了身份认证、权限校验、流量管理等。ViewSet主要通过继承ViewSetMixin来实现在调用as_view()时传入字典({'get':'list'})的映射处理工作。 代码语言:txt 复制 -在ViewSet中,没有提供任何动作action方法,需要我们自己实现action方法。GenericViewSet:使用Vie...