DRF 视图】的更多相关文章

在我们用DRF视图集完成了查找全部部门,创建一个新的部门,查找一个部门,修改一个部门,删除一个部门的功能后,views.py的代码是这样子的: class DepartmentViewSet(ModelViewSet): queryset = Department.objects.all() serializer_class = DepartmentSerializer 现在需要新增一个功能,查询最新成立的部门. 这时,我们就需要自定义action方法了. 新增功能后的代码如下: class D…
目录 开始使用内置视图 请结合[DRF序列化]此文献中的数据文件及序列化文件来阅读如下代码. DRF视图为我们提供了非常简便的方法--内置了增删改查等一系列的操作. 我们只需在url中指定对应的方法,视图继承内置方法的类,即可实现两三行代码搞定一个请求. @ * 我们先看看仿照内置方法实现的** APIView视图文件: from rest_framework.views import APIView from rest_framework.response import Response fr…
DRF视图 drf的代码简写除了在数据序列化体现以外,在视图中也是可以的.它在django原有的django.views.View类基础上,drf内部封装了许多子类以便我们使用. Django REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验.保存.转换数据) 控制数据库查询的执行 调用请求类和响应类[这两个类也是由drf帮我们再次扩展了一些功能类. 请求与响应 先创建一个子应用req python manage.py startapp httpdemo Reques…
DRF视图组件: CVB模式继承----五层 from django.views import View # Django的View from rest_framework.views import APIView # drf的APIView继承View from rest_framework.generics import GenericAPIView, CreateAPIView # drf的GenericAPIView继承APIView # 以下CBV需要在路由的as_view()中添加对…
前言 drf视图的源码非常的绕,但是实现的功能却非常的神奇. 它能够帮你快速的解决ORM增删改查的重复代码,非常的方便好用. 下面是它源码中的一句话: class ViewSetMixin: """ This is the magic. """ 好了,屁话不多说,直接看看drf视图中的功能吧. 准备工作 此次的Django采用3版本,所以相对于1版本来说有一些差异. 模型表 下面是模型表: from django.db import models…
目录 DRF 视图组件 视图组件大纲 两个视图基本类 五个扩展类 九个子类视图 视图集 常用视图集父类 魔法类 一览表 DRF中视图的"七十二变" 第一层:基于APIview的五个接口 第一层五个接口demo 第二层:基于GenericAPIView的五个接口 常用类属性: 第二层五个接口demo 第三层:基于GenericAPIView+五个视图扩展类写 第三层五个接口demo GenericAPIView速写五个接口demo 第四层:GenericAPIView+九个视图子类写五个…
一.restfull规范的简单介绍 1.介绍 REST:表述性状态转移,是一种web交互方案 资源:在web中只要有被引用的必要都是资源 URI: URI 统一资源标识符 URL 统一资源定位符 统一资源接口 根据HTTP请求方式的不同对资源进行不同的操作 遵循HTTP请求方式的语义 前后端传输的叫资源的表述 前端展现的叫资源的状态 通过超链接的指引告诉用户接下来有哪些资源状态可以进入 2.restfull规范 核心思想 -- 面向资源去编程 每个url就是资源的体现 尽量用名词不要用动词 --…
视图组件 1.基本视图 url(r'^publish/$', views.PublishView.as_view()), url(r'^publish/(?P<pk>\d+)/$', views.PublishDetailView.as_view()), class PublishSerializers(serializers.ModelSerializer): class Meta: model=models.Publish fields='__all__' class PublishVie…
Django Rest Feamework 视图和路由 DRF的视图 APIView 我们django中写CBV的时候继承的是View,rest_framework继承的是APIView,那么他们两个有什么不同呢 urlpatterns = [ url(r'^book$', BookView.as_view()), url(r'^book/(?P<id>\d+)$', BookEditView.as_view()), ] 我们可以看到,不管是View还是APIView最开始调用的都是as_vi…
视图组件  -- 第一次封装   -- GenericAPIView(APIView):    queryset = None    serializer_class = None    def get_queryset(self):     return self.queryset.all()    def get_serializer(self, *args, **kwargs):     return self.serializer_class(*args, **kwargs)   --…