DRF-视图

DRF视图类中除了APIView类,还有一个GenericAPIView类。GenericAPIView类主要给我们提供了2个属性,3个方法。

属性:

queryset:要序列化的数据

serializer_class:序列化类

 

方法:

get_queryset():获取要序列化的数据

get_object():根据条件获取对象

get_serializer():获取序列化类

复制代码
 1 from rest_framework.generics import GenericAPIView
 2 
 3 # 查询所有数据、添加数据接口
 4 class BookView(GenericAPIView):
 5     """重写属性"""
 6     # 数据库数据
 7     queryset = models.Book.objects.all()
 8     # 序列化类
 9     serializer_class = serializer.BookSerializer
10     def get(self, request):
11         """使用父类方法获取属性"""
12         book_list = self.get_queryset()
13         ser = self.get_serializer(instance=book_list, many=True)
14         return Response(ser.data)
15 
16     def post(self, request):
17         """使用父类方法获取属性"""
18         ser = self.get_serializer(data=request.data)
19         if ser.is_vaild():
20             ser.save()
21             return Response({'code': 100, 'msg': '添加成功'})
22         return Response({'code': 99, 'msg': '添加失败'})
23 
24 # 查询一个数据、修改数据、删除数据接口
25 class BookDetailView(GenericAPIView):
26     """重写属性"""
27     # 数据库数据
28     queryset = models.Book.objects.all()
29     # 序列化类
30     serializer_class = serializer.BookSerializer
31 
32     def get(self, request, *args, **kwargs):
33         """使用父类方法获取属性"""
34         book_obj = self.get_object()
35         ser = self.get_serializer(instance=book_obj)
36         return Response(ser.data)
37     
38     def put(self, request, *args, **kwargs):
39         ...
40     
41     def delete(self, request, *args, **kwargs):
42         ...
复制代码

 

posted @   powfu  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示