DRF框架总结

匿名 (未验证) 提交于 2019-12-03 00:43:02

序列化器类


1)如果定义的序列化器类不是针对于模型类,可以直接继承此类即可。


| ModelSerializer

1)序列化:

python

serializer = BookInfoSerializer(book)
获取序列化之后的字典数据
serializer.data

2)反序列化-数据验证

python

serializer = BookInfoSerializer(data=data)

serializer.is_valid()

3)反序列化-新增或更新

a)新增

python

serializer = BookInfoSerializer(data=data)

serializer.is_valid()

serializer.save()
```

b)更新

python

serializer = BookInfoSerializer(book, data=data)

serializer.is_valid()

serializer.save()

视图类


1)继承自View,封装了Django 本身的HttpRequest对象为Request对象。


1)继承自APIView,提供了操作序列化器和数据库数据的方法,通常和Mixin扩展类配合使用。


| ------------------ | ------------------------------------------------------------ |


| RetrieveModelMixin | 提供了一个retrieve方法,封装了获取一条模型对象数据信息的通用流程。 |


| ---------------------------- | ------------------------------------------------------------ |







| RetrieveUpdateDestoryAPIView | 1)继承自RetrieveModelMixin,UpdateModelMixin,DestroyModelMixin和GenericAPIView。2)如果只想定义一个视图提供`获取一个模型信息`和`更新一个模型信息`和`删除一个模型信息`的接口,继承此视图类是最快的方式。 |

视图集类


| -------------------- | ------------------------------------------------------------ |



| ReadOnlyModelViewSet | 1)继承自ListModelMixin,RetrieveModelMixin和GenericViewSet。2)如果使用视图集想一次提供list操作和retrieve操作,继承这个类是最快的。 |

> 注: 除了常见的5种基本操作之外,如果想给一个视图集中添加其他处理方法,直接在视图集中定义即可。

路由Router、


>
> 1)路由Router是专门配合视图集来使用的,可以使用Router自动生成视图集中相应处理函数对应的URL配置项。
>
> 2)使用Router自动生成视图集中相应处理函数对应的URL配置项时,除了常见的5种基本操作之外,如果视图集中有添加的其他处理方法,则需要给这些方法加上action装饰器之后,才会动态生成其对应的URL配置项。

文章来源: DRF框架总结
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!