昨日回顾:
分页器:
普通分页
- # 普通分页
- from rest_framework.pagination import PageNumberPagination
- 每页的大小 (默认)
- 查询的时候, 按哪个字段查
- 当前页的每页大小 (用户指定的)
- 每页显示最大条数
- 写一个类继承分页类, 重写属性
- 使用的时候:
- 实例化出一个分页器对象
- 返回值 = 对象. paginate_queryset(book_list, request, self)
- 序列化 (返回值)
-return 序列化之后的值
偏移分页
- # 偏移分页
- from rest_framework.pagination import LimitOffsetPagination
- 每页的大小: default_limit
- 标杆值 offset
- 偏移值 limit
- 最大偏移的数: max_limit
加密分页 (速度快)
加密分页 (速度快)
- # 加密分页
- from rest_framework.pagination import CursorPagination
- 写一个类继承分页类, 重写属性
-cursor_query_param: 以该字段配置的值查询
-ordering 按哪个字段排序
版本控制:
-URLPathVersioning
- 版本直接放在路由中, 配置路由
url(r'^(?P<version>[v1|v2|v3]+)/books/$', views.Book.as_view({'get':'get_all'}),name='ttt'),
- 在 setting 中配置
- 'VERSION_PARAM':'version', #根据哪个键取查询
- 'DEFAULT_VERSION':'v1', #默认的版本号
- 'ALLOWED_VERSIONS': ['v1', 'v2'], #允许的版本号
- 在视图类中: 局部使用
versioning_class = URLPathVersioning
- 在 request 对象中, 可以取出版本 request.version
- 反向解析
- 因为 request 对象能取出版本号, 内部自动填入
-url2=request.versioning_scheme.reverse('ttt',request=request)
- 如果是路由有别的有名 / 无名分组, 需要手动传过去
-QueryParameterVersioning
路飞项目背景
人员配比:
开发:
- 前端 vue 一个人
- 主站 2 个人
- 导师后台 1 个人
- 管理员后台 1 个人
ui + 原型设计 1 个人
产品经理 1 个人
测试 1 个人
专职导师: 2 个人
项目:
主站:
- 课程
- 课程详情
- 课程章节
- 课程的价格策略
- 个人中心
- 登录
- 注册
- 修改密码
-...
- 购物车
- 加入购物车
- 修改购物车
- 支付中心
- 去支付
- 优惠券
-6 种优惠券: 全站的: 满减, 立减, 打折 每个课程: 满减, 立减, 打折
- 去支付
- 支付宝支付
- 推送
- 微信推送
- 视频播放
咱们要写的:
课程相关的, 登录, 购物车, 支付中, 支付宝支付, 推送, 视频播放
contentType 组件
干啥用的? django 内置的一个组件, 方便我们快速的连表操作
在 course 表中:
policy = GenericRelation('PricePolicy', object_id_field='course_id', content_type_field='table_id')
在价格策略表中:
content_obj = GenericForeignKey('table_id','course_id')
-- 加的这两个字段都不会在数据库中生成, 它只是用来查询, 插入
django 的缓存
全站缓存:
两个中间件:
- MIDDLEWARE_CLASSES = (
- 'django.middleware.cache.UpdateCacheMiddleware', #第一
- 'django.middleware.common.CommonMiddleware',
- 'django.middleware.cache.FetchFromCacheMiddleware', #最后
- )
单页面缓存:
-from django.views.decorators.cache import cache_page
- 装饰器加载视图函数上即可
@cache_page(5)
页面局部缓存:
- {
- % load cache %
- }
- # 第一个参数是时间, 第二个参数是别名
- {
- % cache 5 'test' %
- }
缓存的时间:
- {
- {
- ctime
- }
- }
- {
- % endcache %
- }
缓存的位置:(只需要改配置文件)
内存
文件
数据库
Redis
来源: http://www.bubuko.com/infodetail-2891909.html