首页 > 其他分享 >DRF-视图

DRF-视图

时间:2022-12-03 21:33:06浏览次数:31  
标签:ser get self request 视图 序列化 serializer 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         ...

 

标签:ser,get,self,request,视图,序列化,serializer,DRF
From: https://www.cnblogs.com/powfu/p/16948810.html

相关文章

  • mysql高阶语句+视图
    一,高阶语句1.select:显示表格中一个或数个栏位的所有资料格式:SELECT"栏位"FROM"表名";2.where:条件查询格式:SELECT"栏位"FROM"表名"WHERE"条件";嵌套/多条件,......
  • 报名啦!一起学习《多视图几何》、深度学习SLAM、GTSAM库、DSO、SVO Pro
    以下内容来自从零开始机器人SLAM知识星球每日更新内容点击领取学习资料→机器人SLAM学习资料大礼包原文链接:【https://mp.weixin.qq.com/s/BgWuX86veLs3mth0gANY5g】......
  • DRF-频率限制
    DRF之权限和频率限制 一、权限权限可以限制用户对视图的访问和对具体数据对象的访问。在执行视图的dispatch方法前,会先进行视图访问权限的判断在通过get_object获......
  • DRF-筛选的高级用法
    高级使用实现模糊过滤,比如包含,大于,小于等等1.编写自己的过滤器类过滤器类和Django中表单类极其类似,写法基本一样,目的是指明过滤的时候使用哪些字段进行过滤,每个字段可以......
  • mysql索引,事务,视图,存储过程,存储引擎
    一,索引1.概念索引:提供指向存储在表的指定列中的数据值的指针,然后根据指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。索引就......
  • mvc中使用视图模板cshtml动态生成generated文件
    一、原因在MVC中,经常会使用一些模板视图,这样会把公用的页面定好,各个功能模块就可以引用调用,无需每个页面都写相同的代码,如果后续修改,也需要在一个地方就可以更改内容。比如......
  • drf 自定义返回数据格式
    参考:https://www.jianshu.com/p/c0be24752584原来的写法太繁琐,而且导致接口api界面没了,不是我想要的,就调整了如下修改permissions.pyfromrest_frameworkimportpermi......
  • drf--分页
    fromdjango.shortcutsimportrender,HttpResponsefromrest_framework.paginationimportPageNumberPaginationfromrest_framework.viewsimportAPIViewfromapp0......
  • IDEA如何打开structure窗口(类视图方法)
    Structure结构视图默认是不打开的在菜单View>ToolWindows>Structure或者使用Alt+7打开类视图显示:......
  • DRF解析器使用方法和配置案例
    DjangoREST中的解析器用于解析传入HTTP请求的内容。在HTTP请求中以字符串格式接收数据。解析器将根据HTTP请求中收到的Content-Type标头将HTTP内容解析为pyth......