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':[]}
原文地址:https://www.cnblogs.com/DEJAVU888/p/14893780.html