项目中使用drf的关键步骤

django的view实现商品列表页

  • 此种方法存在的问题:
  1. 工作量大,比较容易出错
  2. 日期字段序列化会出错

django的serializer序列化model

  • serializers也可以完成序列化工作,为啥还要用drf呢,主要原因:
  1. image字段返回给前端不友好
  2. 字段顺序固定死了
  3. 文档生成不好
  4. 其他。。。

3-4.apiview实现

  • 添加serializers文件到packages目录下
  • view里面引用serialuzers的class,并返回json
  • 配置url
  • 注意setting里面REST_FRAMEWORK和django版本需要为1.11.6

5.modelserializer实现

  • 引入serializers.ModelSerializer
  • 引入model和定义所有字段
  • 嵌套引入serializers.ModelSerializer,实现外键详细信息展示

6.GenericView方式,如何改写views

  • 引入mixins、generics
  • 配置django-rest framework相关配置实现分页和简化配置,以及查询参数

7.viewsets和router

  • 修改view,再修改url

8.APiview、GenericView以及ViewSet和Router原理

  • GenericViewSet(viewset) ---drf
  • GenericAPIView ---drf
  • APiview ---drf
  • View ---django
  • mixin
  1. CreateModelMixin
  2. ListModelMixin
  3. UpdateModelMixin
  4. RetriewveModelMixin
  5. DestroyModelMixin
  • viewsets将代码中本应该有的绑定放到url中来做

9.drf的requests和response

  • 将django的原有变量做了封装,更加好用

10-11.drf的过滤

  • view里面定义get_queryset方法,返回符合条件的queryset
  • 分页,搜索,过滤,排序

12.小结

  • 使用django原生方法返回json字符串
  • APIview,Genneview,viewset,以及上面结果结构和原理
  • 具体可以参考drf官网api guide

你可能感兴趣的:(项目中使用drf的关键步骤)