restful规范和drf模块

restfu1规范

它是一个规范,面向资源架构
10条规范:
    1.api与用户的通信协议,总是使用https协议
    api网上提供的接口
    2.域名:
        尽量将api部署在专用域名(会存在跨域问题)
        API很简单
        
    3.版本
        可以放在路径或请求头中
        
    4.路径,视网络上任何东西都是资源,均使用名词表示
        
    5.method:通过请求方式来表示进行的操作
            GET 获取所有图书
            POST 表示新增一本书
            delete 删除
            put/patch  表示修改一本书
            
     6.过滤,通过再url上传参的形式进行传递搜索条件
        
     7.状态码:
            1开头  服务器正在处理
            2开头  服务器处理成功
            3开头  重定向
            4开头  客户端错误
            5开头  服务器错误
            注意:在返回的数据中携带状态码
                
     8.错误处理,应该返回错误信息,error当做key
                    
     9.返回结果,针对不同操作,服务器向用户返回的结果应该符合以下规范
    GET 返回资源对象的列表
    GET/1 返回单个资源对象
    POST 返回新生成的资源对象
    PUT 返回完整的资源对象
    PATCH 返回完整的资源对象
    DELETE 返回空字典
    
    10.在返回结果中提供链接
    
  总结:必须说出来的,路径都用名词,请求方式不同,表示不同的操作    

基于原生django写resful规范的接口

jsonreponse 转列表的时候需要将safe设置为false

CBV的源码执行流程

1.from django.views import View

2.定义一个类继承View

3.定义一个get方法,post方法
1.url当程序启动后,Books.as_view()已经被解析成as_view的view的内存地址
2.比如来了一个get请求,拿到第二个位置参数内存地址加括号执行view(request,*args,**kwargs)
3.又执行了dispatch(request,*args,**kwargs)
4.dispatch方法先去判断请求是否在允许范围内,通过请求方式,反射出要执行的方法,取执行,然后返回

补充

urlencode#编码
formdata#编码
json#request.POST是没有值的,只能从body中取出,直接处理
#urlencode和formdata编码,request.POST,django框架帮我们封装了方法

drf框架安装

在原来django框架的基础上,帮我们多做了一些封装
安装
1.py36 -m pip install djangorestframework
2.其实就是一个app,需要在settings中配置
3.只要用drf,以后写的都是cbv

drf简单使用

1.基础drf写的cbv
2.from rest_framework.views import APIView
CBV(APIView)
3.之前需要做数据库迁移
4.drf提供的功能
序列化组件,视图组件,解析器,认证组件,权限组件,频率组件,分页器,响应器,url控制器,版本控制

APIView的源码执行流程

1.只要继承了APIView的函数都局部禁用了csrf
2.比如get请求来了,执行view的as_view方法内部的view闭包函数
3.view闭包函数中dispatch方法
4.现在再执行dispatch方法,就是执行APIView的dispatch方法

补充:

装饰器其实就是一个函数

猜你喜欢

转载自www.cnblogs.com/robert-zhou/p/10593257.html