Rest_Framework--介绍

一.FBV和CBV
FBV(function base views) 就是在视图里使用函数处理请求。
CBV(class base views) 就是在视图里使用类处理请求。
 
在之前的代码习惯中,通常使用一个url对应一个视图函数,即FBV;
DjangoRestFramework使用的是多个url对应一个视图,视图中封装了get,post,put,patch,delete等主要方法,即CBV模式。
我们用类写View。这样做的优点主要下面两种:
  1. 提高了代码的复用性,可以使用面向对象的技术,比如Mixin(多继承)
  2. 可以用不同的函数针对不同的HTTP方法处理,而不是通过很多if判断,提高代码可读性
二.drf
DjangoRestFramework是一个基于django开发的组件,本质是一个django的app
 
drf提供哪些功能
#免除csrf认证 dispatch中的as_view()函数,return csrf_exempt(view)
#路由组件routers 进行路由分发
#视图组件ModelViewSet 帮助开发者提供了一些类,并在类中提供了多个方法
#版本 版本控制用来在不同的客户端使用不同的行为
#认证组件 写一个类并注册到认证类(authentication_classes),在类的的authticate方法中编写认证逻
#权限组件 写一个类并注册到权限类(permission_classes),在类的的has_permission方法中编写认证逻辑。
#频率限制 写一个类并注册到频率类(throttle_classes),在类的的allow_request/wait 方法中编写认证逻辑
#序列化组件:serializers 对queryset序列化以及对请求数据格式校验
#分页 对获取到的数据进行分页处理, pagination_class
#解析器 选择对数据解析的类,在解析器类中注册(parser_classes)
#渲染器 定义数据如何渲染到到页面上,在渲染器类中注册(renderer_classes)
 

原文地址:https://www.cnblogs.com/absoluteli/p/14129253.html