zoukankan      html  css  js  c++  java
  • DAY 70 drf08

    1 分析了频率组件源码
    2 缓存:把一些数据放在某个位置,过会再根据key取出来(内存,文件,数据库,redis)
    3 过滤和排序
    4 django-filter
    5 自定义过滤类(重要)
    6 全局异常处理
    -视图类执行出错---》捕获异常,记日志,统一给前端一样的格式
      -写一个函数
      def exception_handler(exc, context):
               return Response()
    -在配置文件中配置:EXCEPTION_HANDLER=你写的方法
    7 接口文档(在公司里作为规范,很重要)
    -自动生成的几口文档(coreapi,swagger)
    -别的接口平台,买的,第三方
      -Yapi:公司里的这种接口平台也能自动生成
    -把swagger的数据直接导入

     

    1 三种分页方式

    1 三种分页方式
    -基本分页:PageNumberPagination
       page_size = 2  # 每页显示两条
       page_query_param = 'page'  #查询第几页的参数 ?page=3
       max_page_size = 4     #每页最大显示多少条
       page_size_query_param = 'size' #每页显示的条数查询条件(默认是page_size显示的条数) # ?page=3&size=3
      -偏移分页:LimitOffsetPagination
       default_limit=2  #默认显示几条
       limit_query_param='limit'   # ?limit=3   表示取3条
       offset_query_param = 'offset' #偏移 ?offset=5&limit=3   #从第5个位置开始,取3条数据
       max_limit = 5   #最多显示5条
       -游标分页:CursorPagination
       cursor_query_param = 'cursor'
       page_size = 2
       ordering = 'id'
       
    2 如何使用
    -写一个类,继承三个之一,重写几个属性
      -在视图类中配置

    ###写一个类,重写类属性
    class MyPageNumberPagination(PageNumberPagination):
       page_size = 2  # 每页显示两条
       page_query_param = 'page'  #查询第几页的参数 ?page=3

       max_page_size = 4     #每页最大显示多少条
       page_size_query_param = 'size' #每页显示的条数查询条件(默认是page_size显示的条数) # ?page=3&size=3
       
    #配置
    class BookView(ViewSetMixin,ListAPIView,CreateAPIView):
       queryset = models.Book.objects.all()
       serializer_class = serializer.BookModelSerializer
       #配置使用的分页类
       pagination_class = MyCursorPagination
       
       
    # 局部使用


    #全局使用,在配置文件中(以后所有视图的查询所有方法都用这个分页)
    REST_FRAMEWORK = {
    'DEFAULT_PAGINATION_CLASS':'app01.page.MyPageNumberPagination'
    }

     

    2 xadmin的使用

    1 django后台管理admin
    2 xadmin,美化页面,bootstrap+jq,
    -django:1.x,2.x
       -3.x以后就不用了
       
    3 simple-ui
    3.x用
       
       
    4 django是1.x
    pip3 install xadmin
       
    5 django是2.x
    pip install git+git://github.com/sshwsfc/xadmin.git@django2
       
    6 碰到一个第三方插件,有些bug
    -pip3 install 名字:装到解释器中---》下次换了别的解释器,改了源码,又得重新改
       -把第三方插件的源码拿出来
       -放到自己项目里,想怎么改,就怎么改
       
       
    7 Xadmin和django的xadmin压根没有联系
    -http://x.xuebingsi.com/
    -纯前端(html,css,js)后台模板
       -跟语言无关
       -xadmin和layui的区别
      基于layui写的后台管理模板
           
    8 基于bootstrap的后台管理模板
    -admin lte
       
    9 前后端分离
    -后台模板
       -vue-admin

     

    3 RBAC介绍

    RBAC -是基于角色的访问控制(Role-Based Access Control 
    用在后台管理系统中,做权限,公司对内使用rbac
    对外的网站,权限控制使用三大认证

    1 三个表
    -用户表
      -角色表
      -权限表
       
    2 6个表(正常是5个表),django的auth,用的就是6表
    -用户表:auth_user
      -角色表:auth_group
      -权限表:auth_permission
      -角色和权限是多对多:auth_group_permissions
    -用户和角色是多对多:auth_user_groups
     
       -用户和权限的多对多表:auth_user_user_permissions

    扩展

    1 搜索功能用的就是过滤
    -python----》3个表的数据
       
      {status:100,msg:'查询成功',data:{'book':[],'author':[]}
  • 相关阅读:
    Atitit.播放系统规划新版本 v4 q18 and 最近版本回顾
    Atitit.播放系统规划新版本 v4 q18 and 最近版本回顾
    atitit.极光消息推送服务器端开发实现推送  jpush v3. 总结o7p
    atitit.极光消息推送服务器端开发实现推送  jpush v3. 总结o7p
    Atitit.文件搜索工具 attilax 总结
    Atitit.文件搜索工具 attilax 总结
    Atitit.软件命名空间  包的命名统计 及命名表(2000个名称) 方案java package
    Atitit.软件命名空间  包的命名统计 及命名表(2000个名称) 方案java package
    Atitit..状态机与词法分析  通用分词器 分词引擎的设计与实现 attilax总结
    Atitit..状态机与词法分析  通用分词器 分词引擎的设计与实现 attilax总结
  • 原文地址:https://www.cnblogs.com/DEJAVU888/p/14893780.html
Copyright © 2011-2022 走看看