zoukankan      html  css  js  c++  java
  • DRF总结

    目录 

    1.接口

    2.DRF入门

    3.序列化组件

    4.三大认证

    5.群查过滤组件

     

    接口

    """
    1、什么是接口:url+请求参数+响应数据 | 接口文档
    
    2、接口规范:
        url:https,api,资源(名词复数),v1,get|post表示操作资源的方式,?过滤条件
        响应数据:status,msg,results|data,url资源数据
    """

    DRF入门

    1.封装风格

    2.请求生命周期

    走APIView的as_view => view的as_view调用

    APIView的dispatch => 分发给视图类的请求函数 => 响应

    3.请求模块:二次封装request

    4.解析模块:局部全局配置

    5.渲染模块:局部全局配置

    6.响应模块:

    7.异常模块:

    在请求生命周期中,分发请求任务执行时,被一个超大的try except包裹,一旦出现任何异常,都会交给exception_handler函数处理
    自定义原因:系统只处理了部分,所以手动还需要处理;后期异常信息需要记录到日志文件
    工作流程:先交给drf处理异常,如果有响应结果,代表drf已处理,如果是None,自己处理

    8.二次封装Respomse

    i) 继承Response
    ii) 自定义参数格式化成data,传给 super().__init__(data=data)
    iii) 网络状态码、响应头等信息带给super().__init__()

    序列化组件

    # 1)可以将model对象序列化成可以返回给前台的json数据
    # 2)可以校验前台传来的数据,完成model的增与改

    三大组件

    """
    1、认证组件:
        i)自定义认证类继承BaseAuthentication,重写authenticate方法
        ii)规则:游客返回None,非法用户抛异常,合法用户返回(user, auth)
        iii)全局局部配置
        
    2、权限组件:
        i)自定义权限类继承BasePermission,重写has_permission方法
        ii)规则:有权限返回True,无权限返回False - 校验对象:request.user或请求方式
        iii)全局局部配置
        
    3、频率组件:
        i)自定义频率类继承SimpleRateThrottle,重写get_cache_key方法,设置scope类属性
        ii)全局配置scope对应的访问频率:次数/时间
        iii)get_cache_key返回的是与限制条件有关的动态字符串 - 限制条件来源于请求参数或请求头
        iv)全局局部配置
        
    4、jwt认证:
        i)客户端存token,服务器存签发算法、校验算法、秘钥
        ii)基本信息(头base64).用户信息过期时间(载荷base64).全信息+秘钥(签名HS256)
        iii)drf-jwt组件使用
        iv)登录接口签发token
        v)认证组件校验token
    """

    群查过滤组件

    """
    1、搜索组件:search_fields = ['name', 'price']
    
    2、排序组件:ordering_fields = ['pk', 'price']
    
    3、分页组件:pagination_class = pagenations.MyPageNumberPagination
    
    4、django-filter过滤插件:filter_class = CarFilterSet
    
    5、自定义过滤器:自定义过滤类实现filter_queryset即可,根据筛选条件筛选后再返回queryset即可
    
    使用:
    i)视图类添加过滤类:filter_backends = [SearchFilter, OrderingFilter, LimitFilter, DjangoFilterBackend]
    ii)为不同的过滤类配置过滤条件
    """
  • 相关阅读:
    hdu 4614 线段树 二分
    cf 1066d 思维 二分
    lca 最大生成树 逆向思维 2018 徐州赛区网络预赛j
    rmq学习
    hdu 5692 dfs序 线段树
    dfs序介绍
    poj 3321 dfs序 树状数组 前向星
    cf 1060d 思维贪心
    【PAT甲级】1126 Eulerian Path (25分)
    【PAT甲级】1125 Chain the Ropes (25分)
  • 原文地址:https://www.cnblogs.com/xiaowangba9494/p/11782570.html
Copyright © 2011-2022 走看看