文章目录 零、视图家族 一、GenericAPIView:视图家族的基类 二、Mixins:视图工具集 1.群查 查看源码 代码实现 测试接口 2.单查 查看源码 代码实现 测试接口 3.单增...查看源码 代码实现 测试接口 4.单改 查看源码 代码实现 测试接口 零、视图家族 Django REST framework 为了方便视图类的操作,构建了包括以下几种视图类和工具集: views...:API视图 generics:工具视图 mixins:视图工具集 viewsets:视图集 一、GenericAPIView:视图家族的基类 generics.py 中的 GenericAPIView...update **单局部改:**partial_update DestroyModelMixin: **单删:**destroy,一般不使用该方法,或重写方法利用字段is_delete 来实现删除操作...kwargs) # 添加自己封装的 APIResponse return APIResponse(results=response.data) urls.py from django.conf.urls
Django Rest Framework 视图(上) ?...CreateModelMixin RetrieveModelMixin UpdateModelMixin DestroyModelMixin ListModelMixin 分别对应,创建,获取单条数据,更新,删除...由于在获取,删除,更新数据的时候需要这项数据的唯一标识,这里是 pk 主键,因此需要在 url 中增加正则匹配。...③ 视图 在视图中,并没有增加相应的增删改查的逻辑却能完成相应的功能,这是因为继承的 mixin 类中,已经有对应的方法,视图类会自动调用父类的方法。 ?
Django Rest Framework 分页(下) ?...在之前的 django rest framework,其它组件中,在视图函数中继承类都是 rest_framework.view.APIView,这个 APIView 是继承的 django 中的 View...那么在 django rest framework 中,还有没有提供其它的类能够继承?...这里实现的功能和 django rest framework 之分页中的功能一样,先获取数据,分页,序列化返回。...③ 视图 视图中基本上一样,只不过更改了不同 http 请求方法的对应类方法名 ?
除了类视图之外,Django REST Framework还支持函数视图。函数视图是普通的Django视图函数,可以用于处理API请求。与类视图不同,函数视图没有任何类或方法可以重写。...以下是一个简单的函数视图的例子:from rest_framework.decorators import api_viewfrom rest_framework.response import Response...在这个例子中,我们使用@api_view装饰器来将一个普通的Django视图函数转换为API视图。我们将请求方法限制为GET,并返回一个包含消息的响应。...以下是一个使用装饰器的函数视图的示例:from rest_framework.decorators import api_view, authentication_classes, permission_classesfrom...rest_framework.authentication import TokenAuthenticationfrom rest_framework.permissions import IsAuthenticatedfrom
在Django rest Framework入门 二 :DRF框架初体验中其实已经使用了视图了(book.views里面的代码),而且就是实际开发中最常用的模式,但是那是经过DRF框架高度封装的,代码的可读性不好...* **视图类代码** 这里有一个特别的处理,就是视图类中的函数名是list, create这样具体的动作,而不是在django中的put,post这样的请求方法,这和后面的url中配置有关。...return Response(status=status.HTTP_404_NOT_FOUND) bookinfo.is_delete = True # 逻辑删除...这里事实上是DRF框架对路由的分发机制在Django的基础上做了优化,让我们可以将所有的请求方法都写在一个视图类中,而不用像在Django中那样必须区分列表类视图还是详情类视图。...在Django中,由于查单一和查多个都是由GET请求方法触发的,所以不能写在同一个类中,必须拆分到详情类和视图类中。
,一堆mixins工具类与GenericAPIView视图基类组合 视图集 viewsets:可自定义映射关系 from rest_framework import views,generics,mixins...,viewsets 视图类 GenericAPIView 两大视图类:APIView、GenericAPIView APIView from rest_framework.views import APIView...中的删除是真正的删除 # 删除接口一般是自己实现重写到的,因为真正的业务不需要真正的删除 pass # django源代码中是真的删除 return...from rest_framework import viewsets # 视图集类 class ViewViewsetsAPIView(viewsets.ModelViewSet): queryset...from django.conf.urls import url,include from rest_framework.routers import SimpleRouter router = SimpleRouter
GenericAPIView 视图类 2. APIView 视图类 一、Generics:工具视图 generics 是工具视图,可以实现极简化接口编写操作。...二、Viewsets:视图集 1.简单使用 DRF 提供了 Viewsets.py 视图集,再次封装之前的操作。...import admin from django.urls import path from django.conf.urls import url, include from django.views.static...models.Book.objects.filter(is_delete=False) serializer_class = serializers.BookModelSerializer # 删除操作...APIView 视图类 ViewSet 继承 APIView 视图类 实现不需要 Model 类操作,或非标准的 Model 类操作接口。
视图集的认证和权限在 Django REST Framework 中,我们可以使用认证(Authentication)和权限(Permission)来控制 API 的访问权限。...要在视图集中使用认证和权限,我们可以分别定义 authentication_classes 和 permission_classes 属性。...例如,我们可以定义一个名为 BookViewSet 的视图集类,并指定它的认证方式为 Token 认证,权限为 IsAuthenticated:from rest_framework.authentication...import TokenAuthenticationfrom rest_framework.permissions import IsAuthenticatedfrom .models import...这样,只有经过 Token 认证并被授权的用户才能访问 BookViewSet 视图集。
Django REST Framework提供了许多内置的视图来处理不同类型的请求。其中一种是类视图,类视图是一个基于类的视图,可以继承DRF的APIView类或其子类。...类视图提供了更多的灵活性和可重用性,可以更容易地组织代码和扩展API。基本使用要使用类视图,我们可以继承APIView类或其子类,并覆盖其中的方法来处理HTTP请求。...以下是一个基本的类视图示例:from rest_framework.views import APIViewfrom rest_framework.response import Responseclass...在这个例子中,我们定义了一个名为HelloView的类视图,并继承了DRF的APIView类。我们覆盖了其中的get方法,以便处理GET请求。...可以使用url路径将该视图映射到API中:from django.urls import pathfrom .views import HelloViewurlpatterns = [ path(
常见的子类除了APIView类之外,DRF还提供了许多其他的类视图,以便我们更方便地编写代码和扩展API。...以下是其中的一些:GenericAPIViewGenericAPIView是一个基于视图的通用类,提供了处理列表和详情视图的通用功能。...delete(): 处理DELETE请求,用于删除对象。...以下是一个继承自GenericAPIView的视图的示例:from rest_framework import genericsclass ArticleList(generics.ListCreateAPIView...这个视图提供了get和post方法,可以用于获取文章列表和创建新文章。
视图集的路由配置要让视图集生效,我们还需要将其注册到路由中。...在 Django REST Framework 中,我们可以使用 DefaultRouter 或 SimpleRouter 来自动生成视图集的路由。...例如,我们可以定义一个名为 router 的路由对象,并将 BookViewSet 视图集注册到路由中:from rest_framework import routersfrom .views import..., BookViewSet)在这个例子中,我们使用 routers.DefaultRouter() 来创建一个默认路由对象,并使用 router.register() 方法将 BookViewSet 视图集注册到路由中...这样,我们就为 BookViewSet 视图集自动生成了以下路由:HTTP 方法URL 路径视图函数GET/books/listPOST/books/createGET/books/{id}/retrievePUT
在 Django REST Framework 中,视图集(Viewset)是一种简化了视图函数(View Function)的开发方式,它可以让开发者更快速、更方便地创建 RESTful API。...视图集的基本用法在 Django REST Framework 中,视图集是一个处理 HTTP 请求的类,它封装了一组相关的视图函数,包括列表视图(List View)、详情视图(Detail View...)、创建视图(Create View)、更新视图(Update View)和删除视图(Delete View)等。...例如,我们可以定义一个名为 BookViewSet 的视图集类,它对应的模型是 Book,对应的序列化器是 BookSerializer:from rest_framework import viewsetsfrom...这样,我们就创建了一个基于模型 Book 的视图集,它支持常用的 CRUD 操作,包括创建、更新、删除、查询列表和查询详情等。
视图集的过滤器在实际开发中,我们通常需要对 API 的返回结果进行过滤、排序和分页等操作。在 Django REST Framework 中,我们可以使用过滤器(Filter)来实现这些功能。...要在视图集中使用过滤器,我们可以定义 filter_backends 属性,并指定过滤器类。...例如,我们可以定义一个名为 BookViewSet 的视图集类,并使用 DjangoFilterBackend 过滤器来对查询结果进行过滤:from django_filters.rest_framework...在 Django REST Framework 中,我们可以使用过滤器(Filter)来实现这些功能。过滤器可以根据客户端提供的查询参数来对返回结果进行过滤、排序和分页等操作。...例如,我们可以定义一个名为 BookViewSet 的视图集类,并使用 DjangoFilterBackend 过滤器来对查询结果进行过滤:from django_filters.rest_framework
视图集的路由在 Django REST Framework 中,我们可以使用路由(Router)来自动生成 API 的 URL 路由。...例如,我们可以在 views.py 文件中定义一个名为 router 的路由对象,并注册 BookViewSet 视图集:from rest_framework import routersfrom ....接着,我们可以将 router.urls 添加到 Django 项目的 URLConf 中,例如,在 urls.py 文件中可以添加以下代码:from django.urls import path,...结论视图集(Viewset)是 Django REST Framework 中非常方便的 API 开发方式,它可以简化 API 的编写和维护工作,提高开发效率和代码可读性。...希望读者能够通过本文的学习,更好地掌握 Django REST Framework 中的视图集技术,并用它来构建更加高效、安全和可靠的 RESTful API。
ModelViewSetModelViewSet是一个基于视图集的通用类,提供了处理CRUD操作的通用功能。...destroy(): 处理DELETE请求,用于删除对象。...以下是一个继承自ModelViewSet的视图的示例:from rest_framework import viewsetsclass ArticleViewSet(viewsets.ModelViewSet...queryset = Article.objects.all() serializer_class = ArticleSerializer在这个例子中,我们定义了一个名为ArticleViewSet的视图...这个视图提供了list、create、retrieve、update、partial_update和destroy方法,可以用于处理CRUD操作。
在 Django REST Framework 中,视图集(Viewset)是一种方便的 API 开发方式,它将视图(View)和序列化器(Serializer)组合起来,提供了一组标准的 API 操作...(列表、创建、更新、删除、详情等),可以大大简化 API 的编写和维护工作,提高开发效率和代码可读性。...包括列表查询、创建、更新、删除、详情查询等。...例如,我们可以在 views.py 文件中定义一个 BookViewSet 视图集:from rest_framework import viewsetsfrom .models import Bookfrom...例如,我们可以在 views.py 文件中定义一个 AuthorViewSet 视图集:from rest_framework import viewsetsfrom .models import Authorfrom
在Django REST Framework中,视图是处理HTTP请求和响应的核心组件。视图接收HTTP请求,然后根据请求的方法(GET,POST,PUT等)执行相应的操作,并返回HTTP响应。...DRF视图可以是函数视图或基于类的视图。函数视图类似于Django中的函数视图,它接收一个request对象并返回一个响应。...以下是一个简单的基于类的视图示例:from rest_framework import genericsfrom .serializers import BookSerializerfrom .models...在DRF中,还有许多其他视图类型可用。以下是一些常用的视图类型:ListAPIView:提供一个只读列表视图,显示一个查询集的序列化结果。...UpdateAPIView:提供一个更新视图,用于更新现有对象。DestroyAPIView:提供一个删除视图,用于删除一个对象。
DRF还提供了许多其他视图类型和装饰器,可以根据需要使用。视图还可以根据需要组合和嵌套。例如,我们可以将一个视图嵌套在另一个视图中,以构建复杂的API端点。...以下是一个嵌套视图的示例:from rest_framework import genericsfrom .serializers import AuthorSerializer, BookSerializerfrom...request, format_kwarg='json', kwargs=self.kwargs).get().data return Response(data)在上面的示例中,我们定义了三个视图...AuthorDetail视图嵌套了AuthorBooks视图,用于显示特定作者的书籍列表。在AuthorDetail视图中,我们首先获取当前作者对象,然后将其序列化并将其书籍列表添加到序列化数据中。...我们使用了AuthorBooks视图的实例来获取书籍列表,并将其数据添加到序列化数据中。在这里,我们还将request对象传递给序列化器和视图,以便可以在序列化器中访问它。
我们为了减少重复代码,重写Response 类 utils/response.py from rest_framework.response import Response class APIResponse...data, status=http_status, headers=headers, exception=exception) 二、调用 views.py from rest_framework.response...import Response from rest_framework.views import APIView from api import models, serializers from utils.response
中很著名的一个框架是django-rest-framework,帮我们减少了很多工作量,尤其在序列化与反序列化成我们需要的格式帮了我们省了很多事 在这里就记录一下个人的学习过程 django-rest-framework...python manage.py makemigrations python manage.py migrate 在数据库里插入几条测试数据后如图所示 实现序列化类 官方文档:http://www.django-rest-framework.org...Student fields = ('id', 'student_id', 'name', 'age') 其他相关的参数可以查阅官方文档,都有详细的介绍 这里我们只简单的显示所有的字段 实现视图...api类 官方文档: http://www.django-rest-framework.org/api-guide/generic-views/ 在这里只需要继承相关的类,复写父类方法即可 # 学生列表...# coding=utf-8 import re from rest_framework import serializers from django.contrib.auth.models import
领取专属 10元无门槛券
手把手带您无忧上云