drf安装使用、api接口

一、drf内容概况

1、django-rest-framework:drf,是一个app
​ 1-drf-drf入门规范
​ 2-drf-序列化组件
​ 3-drf-请求与响应
​ 4-drf-视图组件
​ 5-drf-路由组件
​ 6-drf-认证权限频率
​ 7-drf-过滤排序分页异常处理
​ 8-drf-自动生成接口文档
​ 9-drf-JWT认证:token
​ 10-drf-Xadmin的使用:第三方写的,比admin好看的后台管理
​ 11-Book系列多表群操作
​ 12-RBAC-基于角色的访问控制
django缓存,信号,跨域(cors:跨域资源共享)
2、Vue:前端js框架
3、前后端分离项目:路飞学城

二、web开发模式

1 前后端混合开发(模板语言:DTL),处理很多前端问题
2 前后端分离:前端是一个项目,后端是一个项目,联调
-全栈开发
3 前端:不仅仅指 web前端,移动端,小程序
-web:vue,react,html+css+jq
-移动端:ios(object c,swift),安卓(java,Kotlin)
-小程序:微信自己把js,html,css,封装了一些
-发展到现在:大前端概念
-flutter:Dart
-uni-app:vue框架
4 后端只需要返回json格式字符串即可

三、api接口

1 /books/--->返回json格式数据--->/books/就是一个api接口
2 开放的api接口
-微博
-百度
3 api文档(前端开放看的)
4 典型的api接口 -https://api.weibo.com/2/statuses/home_timeline.json

四、postman的使用

1、模拟发送http请求的工具
-对地址要求严格
-携带get数据
-携带post数据(格式)
-携带请求头
2、后端开放完,使用postman测试接口(api接口)
3、使用postman导出和导入测试接口
4、公司测试平台

五、drf的安装和使用

1 djangorestframework:django的app,只能在django上使用
作用:更快速的在django框架上写接口
2 pip3 install djangorestframework
3 简单使用,看代码
django: 2.0.7 ,1版本也可以
djangorestframework:3.12.1

六、cbv源码回顾

# drf:APIView的源码分析

    def as_view(cls, **initkwargs):
        # 这句话执行完成返回 view闭包函数的内存地址
        view = super().as_view(**initkwargs) # 调用父类(View)的as_view
        view.cls = cls
        view.initkwargs = initkwargs
        view=csrf_exempt(view)  # 局部禁用csrf
        return view

 # 装饰器的使用方式
@csrf_exempt   ====>view=csrf_exempt(view)
def view():
    pass

# 请求来了,会执行上面返回的view()---->self.dispatch(APIView的dispatch)


# APIView的dispatch方法
    def dispatch(self, request, *args, **kwargs):
        # 把原生的request,封装进新的Request对象(drf的Request)
        request = self.initialize_request(request, *args, **kwargs)
        self.request = request
 

        try:
            # 重点(频率,认证,权限。。。)
            self.initial(request, *args, **kwargs)

            if request.method.lower() in self.http_method_names:
                handler = getattr(self, request.method.lower(),
                                  self.http_method_not_allowed)
            else:
                handler = self.http_method_not_allowed
            # 这个request新的requst,是drf中Request对象
            # response是原生response
            response = handler(request, *args, **kwargs)

        except Exception as exc:
            # 全局异常
            response = self.handle_exception(exc)
        # 把原生response包装了一下
        self.response = self.finalize_response(request, response, *args, **kwargs)
        return self.response

你可能感兴趣的:(drf安装使用、api接口)