View与APIView的区别

View是Django默认的视图基类

APIView是REST framework提供的所有视图的基类, 继承自Django的View

APIView与View的不同之处在于:

1. 传入到视图方法中的是REST framework的Request对象,而不是Django的HttpRequeset对象;

2. 视图方法可以返回REST framework的Response对象,视图会为响应数据设置(render)符合前端要求的格式;

3. 任何APIException异常都会被捕获到,并且处理成合适的响应信息;APIException异常捕获

4. 在进行dispatch()分发前,会对请求进行身份认证、权限检查、流量控制

5. 支持定义的属性:

    authentication_classes 列表或元组,身份认证类

    permissoin_classes 列表或元组,权限检查类

    throttle_classes 列表或元组,流量控制类

6. 在APIView中仍以常规的类视图定义方法来实现get() 、post() 或者其他请求方式的方法

你可能感兴趣的:(View与APIView的区别)