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':[]}
  • 相关阅读:
    WPF 之 布局(一)
    CSS 之 内层div填充margin,外层div的背景色不会覆盖该margin
    T-SQL 之 多表联合更新
    jQuery
    Joomla, Wordpress, Drupal 全面详细Pk比较-转载
    js ==与===区别(两个等号与三个等号)
    Jquery DataTables 自定义布局sdom
    Jquery DataTable
    解决Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in
    firedebug调试Jquery
  • 原文地址:https://www.cnblogs.com/DEJAVU888/p/14893780.html
Copyright © 2011-2022 走看看