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':[]}