路飞项目背景,contentType以及django缓存

Posted ouyang99-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了路飞项目背景,contentType以及django缓存相关的知识,希望对你有一定的参考价值。

 

昨日回顾:

 

分页器:

 

普通分页

# 普通分页
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

 




以上是关于路飞项目背景,contentType以及django缓存的主要内容,如果未能解决你的问题,请参考以下文章

ContentType组件

contentType

路飞项目封装loggerresponse以及全局异常

Django的contenttypes应用缓存相关

django组件之ContentType

路飞-项目上线