Python全系列 教程
3567个小节阅读:5931.9k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
rest_framework提供了几种后端视图(对数据资源进行增删改查)处理流程的实现,如果需要编写的视图属于这几种,则视图可以通过继承相应的扩展类来复用代码,减少自己编写的代码量
官网:https://www.django-rest-framework.org/tutorial/3-class-based-views/#using-mixins
rest_framework.mixins
这五个扩展类需要搭配GenericAPIView父类,因为五个扩展类的实现需要调用GenericAPIView提供的序列化器与数据库查询的方法
xxxxxxxxxx
from rest_framework.generics import GenericAPIView
from rest_framework import mixins
from rest_app2.models import Student
from rest_app2.serializers import StudentSerializer
# 使用GenericAPIView类来实现 restframework的视图包装
class StudentList(mixins.ListModelMixin,mixins.CreateModelMixin,GenericAPIView):
# 指定查询集
queryset = Student.objects.all()
# 指定序列化器,不用创建对象
serializer_class = StudentSerializer
def get(self,request,format=None):
# 调用ListModelMixin类中的list方法
return self.list(request,format=None)
def post(self,request,format=None):
return self.create(request,format=None)
class StudentDetail(mixins.RetrieveModelMixin,mixins.UpdateModelMixin,mixins.DestroyModelMixin,GenericAPIView):
# 指定查询集
queryset = Student.objects.all()
# 指定序列化器,不用创建对象
serializer_class = StudentSerializer
def get(self,request,pk,format=None):
# 调用RetrieveModelMixin类中的retrieve方法
return self.retrieve(request,pk,format=None)
def put(self,request,pk,format=None):
# 调用UpdateModelMixin类中的update方法
return self.update(request,pk,format=None)
def delete(self,request,pk,format=None):
return self.destroy(request,pk,format=None)
实时学习反馈
1. 对于rest_framework中扩展的视图类说法错误的是?
A 扩展的视图类已经编写好了通用的数据增删改查操作
B 扩展的视图类需要配合GenericAPIView类使用
C ListModelMixin类实现了获取单条与多条数据功能
D UpdateModelMixin 类实现了更新数据功能
答案
1=>C