视图与url(三)

二级视图GenericView

基本属性和方法

二级视图GenericView官方文档
GenericView视图提供了属性queryset和serializer_classr和方法get_queryset()和get_serializer_class()
queryset可以指定传给serializer的字段,不需要将这些字段再次实例化再传给serializer。
get_queryset可以自定传给serializer的字段,相对于queryset属性更加灵活。
同样的,serializer_class和get_serializer_class()也只需要其一就可以了

扩展(Mixin)

除了上面的方法外,GenericView还提供了很多扩展方法我们需要导入

from rest_framework.mixin import (mixin的名字)

来使用他们

ListModelMixin

提供了list()方法,用于列出查询集(通常为request=get方法)
默认提供了Response响应,如果存在查询集则返回200 OK响应

CreateModelMixin

提供.create(request, *args, **kwargs)实现创建和保存新模型实例的方法(通常为request=post方法)
如果创建了一个对象,则返回一个201 Created响应,该对象的序列化表示形式作为响应的主体。如果表示包含名为的键url,则Location响应的标题将填充该值。

如果为创建对象而提供的请求数据无效,400 Bad Request则将返回响应,并将错误详细信息作为响应的主体。

RetrieveModelMixin

提供一种.retrieve(request, *args, **kwargs)方法,该方法实现在响应中返回现有模型实例。

如果可以检索对象,则返回200 OK响应,并将对象的序列化表示作为响应的主体。否则它会返回一个404 Not Found。

UpdateModelMixin

提供一种.update(request, *args, **kwargs)方法,用于实现更新和保存现有模型实例。

还提供了.partial_update(request, *args, **kwargs)一种类似于该update方法的方法,除了更新的所有字段都是可选的。这允许支持HTTP PATCH请求。

如果对象被更新,则返回200 OK响应,该对象的序列化表示作为响应的主体。

如果为更新对象而提供的请求数据无效,400 Bad Request则将返回响应,并将错误详细信息作为响应的主体。

DestroyModelMixin

提供.destroy(request, *args, **kwargs)实现删除现有模型实例的方法。

如果删除了一个对象,则返回一个204 No Content响应,否则返回一个404 Not Found。

以上来源于官方文档

三级视图

继承

三级视图继承于GenericView,可以看成是加了Mixin的二级视图,所以同样的三级视图有queryset和serializer_class属性和get_queryset()和get_serializer_class()方法。

在使用三级视图前需要导入包

from rest_framework.generics import 三级视图

CreateAPIView

用于仅创建端点。

提供post方法处理程序。

扩展:GenericAPIView,CreateModelMixin

ListAPIView

用于只读端点以表示模型实例的集合。

提供get方法处理程序。

扩展:GenericAPIView,ListModelMixin

RetrieveAPIView

用于只读端点以表示单个模型实例。

提供get方法处理程序。

扩展:GenericAPIView,RetrieveModelMixin

DestroyAPIView

用于单个模型实例的仅删除端点。

提供delete方法处理程序。

扩展:GenericAPIView,DestroyModelMixin

UpdateAPIView

用于单个模型实例的仅更新端点。

提供put和patch方法处理程序。

扩展:GenericAPIView,UpdateModelMixin

ListCreateAPIView

用于读写端点以表示模型实例的集合。

提供get和post方法处理程序。

扩展:GenericAPIView,ListModelMixin,CreateModelMixin

RetrieveUpdateAPIView

用于读取或更新端点以表示单个模型实例。

提供get,put并且patch方法处理。

扩展:GenericAPIView,RetrieveModelMixin,UpdateModelMixin

RetrieveDestroyAPIView

用于读取或删除端点以表示单个模型实例。

提供get和delete方法处理程序。

扩展:GenericAPIView,RetrieveModelMixin,DestroyModelMixin

RetrieveUpdateDestroyAPIView

用于读写 - 删除端点以表示单个模型实例。

提供get,put,patch和delete方法处理。

扩展:GenericAPIView,RetrieveModelMixin,UpdateModelMixin,DestroyModelMixin

以上来源于官方文档

url添加视图

与一级视图一样,在我们设置了头以后,视图的导入都需要在之后加上.as_view()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值