django的view实现商品列表页
- 此种方法存在的问题:
- 工作量大,比较容易出错
- 日期字段序列化会出错
django的serializer序列化model
- serializers也可以完成序列化工作,为啥还要用drf呢,主要原因:
- image字段返回给前端不友好
- 字段顺序固定死了
- 文档生成不好
- 其他。。。
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
- CreateModelMixin
- ListModelMixin
- UpdateModelMixin
- RetriewveModelMixin
- DestroyModelMixin
- viewsets将代码中本应该有的绑定放到url中来做
9.drf的requests和response
- 将django的原有变量做了封装,更加好用
10-11.drf的过滤
- view里面定义get_queryset方法,返回符合条件的queryset
- 分页,搜索,过滤,排序
12.小结
- 使用django原生方法返回json字符串
- APIview,Genneview,viewset,以及上面结果结构和原理
- 具体可以参考drf官网api guide
网友评论