二级视图:GenericAPIView
可以通过GenericAPIView改写列表视图
可以通过GenericAPIView改写列表视图
前言
GenericAPIView,继承自APIView类,为列表视图和详情视图添加了常用的行为和属性。一、子路由
子路由配置如下:
urlpatterns = [
path('test', TestAPIView.as_view()),
#’一级视图’子路由
path('cropsa',ShowCropaAPIView.as_view()),
path('newuser',CreateUserAPIView.as_view()),
#二级视图子路由
path('generic_cropsa',ShowCropaGenericAPIView.as_view()),
path('generic_newuser',CreateUserGenericAPIView.as_view())
]
二、类视图
类视图修改如下:
from rest_framework.generics import GenericAPIView
class ShowCropaGenericAPIView(GenericAPIView):
# 提供公共的属性
queryset = City_cropinfo.objects.all()
serializer_class = City_cropinfoModelSerializer
def get(self,request):
# 1,查询所有的数据
crop_infos = self.get_queryset()
# 2,创建序列化器对象,many=True 表示传入的是列表对象(多个数据)
serializer = self.get_serializer(instance=crop_infos, many=True)
# 3,返回响应
return Response(serializer.data)
class CreateUserGenericAPIView(GenericAPIView):
# 提供公共的属性
queryset = User.objects.all()
serializer_class = UserModelSerializer
def post(self,request):
# 1,获取参数
data_dict = request.data
# 2,创建序列化器对象
serializer = self.get_serializer(data=data_dict)
# 3,校验,入库
serializer.is_valid(raise_exception=True)
serializer.save()
# 4,返回响应
return Response(serializer.data, status=status.HTTP_201_CREATED)
三、使用Postman进行测试
- 查询城市农作物产量信息
- 创建新用户
总结
提示:这里对文章进行总结:
GenericAPIView,继承自APIView类,为列表视图和详情视图添加了常用的行为和属性。