Django REST framework(六)-视图之APIVIEW基本视图类,GenericAPIView通用视图类
五个视图扩展类:
rest_framework.mixins.*
作用:
1、提供了增删改查几种后端视图逻辑代码处理流程的实现,如果需要编写的视图属于这五种,则视图可以通过继承相应的扩展类来复用代码,减少自己编写的代码量。
2、这五个扩展类需要搭配GenericAPIView通用视图基类,因为五个扩展类的实现需要调用GenericAPIView提供的序列化器与数据库查询的方法。
下面代码用到的序列化器
from rest_framework.serializers import ModelSerializer
from rest_framework import serializers
from book.models import BookInfo
class BookSerializer(ModelSerializer):
commentcount = serializers.IntegerField(max_value=10000, min_value=0, default=0)
readcount = serializers.IntegerField(max_value=10000, min_value=0, default=0)
class Meta:
model = BookInfo
fields = '__all__'
extra_kwargs = {
'is_delete': {
"write_only": True,
"read_only": False
},
'id': {
"write_only": True,
"read_only": False,
"required": False
}
}
下面代码所用到的模型类
# 准备书籍列表信息的模型类
class BookInfo(models.Model):
# 创建字段,字段类型...
name = models.CharField(max_length=20, verbose_name='名称')
pub_date = models.DateField(verbose_name='发布日期', null=True)
readcount = models.IntegerField(default=0, verbose_name='阅读量')
commentcount = models.IntegerField(default=0, verbose_name='评论量')
is_delete = models.BooleanField(default=False, verbose_name='逻辑删除')
class Meta:
db_table = 'bookinfo' # 指明数据库表名
verbose_name = '图书' # 在admin站点中显示的名称
def __str__(self):
"""定义每个数据对象的显示信息"""
return self.name
数据库数据
insert into bookinfo(name, pub_date, readcount,commentcount, is_delete) values
('射雕英雄传', '1980-5-1', 12, 34, 0),
('天龙八部', '1986-7-24', 36, 40, 0),
('笑傲江湖', '1995-12-24', 20, 80, 0),
('雪山飞狐', '1987-11-11', 58, 24, 0);
一、ListModelMixin
rest_framework.mixins.ListModelMixin
1、源代码
作用:列表视图扩展类,提供list(request, *args, **kwargs)方法快速实现列表视图,返回200状态码。该Mixin的list方法会对数据进行过滤和分页。<

本文介绍了Django REST framework中用于处理增删改查操作的视图扩展类,如ListModelMixin用于列表视图,CreateModelMixin用于创建资源,RetrieveModelMixin用于获取单个模型实例,UpdateModelMixin用于更新和部分更新,以及DestroyModelMixin用于删除。这些扩展类简化了视图的实现,通过继承并结合GenericAPIView,可以快速构建功能完整的API视图。
最低0.47元/天 解锁文章
1807

被折叠的 条评论
为什么被折叠?



