首页 > 技术文章 > python全栈开发day98-DRF

wuchenggong 2018-09-17 15:28 原文

1.CBV源码流程

  

 

2.restful协议

        1 所有的数据,不过是通过网络获取的还是操作(增删改查)的数据,都是资源,将一切数据视为资源是REST区别与其他架构风格的最本质属性

        2 面向资源架构(ROA:Resource Oriented Architecture)

        3  
           不符合规范:
               127.0.0.1:8000/books
               127.0.0.1:8000/books/add/
               127.0.0.1:8000/books/change/1
               127.0.0.1:8000/books/delete/1
           
           http协议请求方式:GET POST,DELETE,PUT,PATCH,OPTIONS,HEAD,TRACE,CONNECT
                
            GET:查看数据
            POST:提交数据添加数据库
                 
                        GET              
                books-------->查看数据--------------------> 返回所有数据列表 :[{},{},{}]
                        POST
                books-------->添加数据--------------------->返回添加数据 :{}
                        PUT
                books/1------->更新pk=1的数据--------------->返回更新后的数据: {}
                        Delete
                books/1-------> 删除pk=1的数据-------------->返回空
                        GET
                books/1------->查看单条数据   --------------->返回查看的单条数据 {}
            

 

3.Django RestFramework(DRF)

   1) APIView

      (1) 源码分析

        -->view(csrf_exempt()) // 调用父类的as_view得来

        -->APIView.dispatch()          

          # 1 重新封装一个新的request对象
          # 2 认证组件,权限组件,频率组件

        --> 分发        

          handler = getattr(self, request.method.lower())
          response = handler(request, *args, **kwargs)
            return response

   2) 序列化组件

   3)视图类(mixin)

   4)认证组件

   5)权限组件

   6) 频率组件

   7)解析器组件

   8) 响应器组件

   10)url控制器

 

 

4.补充和扩展

  1) ensure_ascii

    json编码时候,默认将中文用ascii编码,设置ensure_acsii=False,保证中文不被编码。

  2 ) request.body

    请求体的原生数据。

  3) 浏览器怎么发送Json数据,服务器怎么接受json数据

      发:

        

      收(View):

          ret = request.body.decode('utf-8')    

        json.loads(ret)

      python:json.dumps(),json.loads()

      js:JSON.stringify,JSON.parse

      收(APIView):

        request.data/request.POST

  4) django默认解析的数据类型

    django.core.handlers.wsgi.WSGIRequest

    

 

推荐阅读