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 ...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本