路飞项目背景,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组件、Django缓存机制以及跨域请求
1 昨日回顾 版本控制 *** (1)url=127.0.0.1/course/?version=v100000 1 versioning_class=QueryParameterVersioning ...
- ContentType组件,Django缓存机制,跨域请求
ContentType组件 解决什么问题:表的id和数据id,来唯一确定一条数据 用: 插入数据: models:content_obj = GenericForeignKey('table_id', ...
- drf版本控制 和django缓存,跨域问题,
drf版本控制 基于url的get传参方式 REST_FRAMEWORK={ # "DEFAULT_AUTHENTICATION_CLASSES":["app01.aut ...
- 大数据项目之_15_电信客服分析平台_01&02_项目背景+项目架构+项目实现+数据生产+数据采集/消费(存储)
一.项目背景二.项目架构三.项目实现3.1.数据生产3.1.1.数据结构3.1.2.编写代码3.1.3.打包测试3.2.数据采集/消费(存储)3.2.1.数据采集:采集实时产生的数据到 kafka 集 ...
- 一.rest-framework之版本控制 二、Django缓存 三、跨域问题 四、drf分页器 五、响应器 六、url控制器
一.rest-framework之版本控制 1.作用 用于版本的控制 2.内置的版本控制 from rest_framework.versioning import QueryParameterVer ...
- Django缓存设置
由于Django构建得是动态网站,每次客户端请求都要严重依赖数据库,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中, ...
- s11 day100路飞项目逻辑购物车一
Luffy项目 先看练习,如下: 一. 添加购物车和查看 1. url url(r'^shoppingcar/$', shoppingcar.ShoppingCarView.as_view({&quo ...
- Web项目开发中用到的缓存技术
在WEB开发中用来应付高流量最有效的办法就是用缓存技术,能有效的提高服务器负载性能,用空间换取时间.缓存一般用来 存储频繁访问的数据 临时存储耗时的计算结果 内存缓存减少磁盘IO 使用缓存的2个主要原 ...
- Django 2.0 学习(18):Django 缓存、信号和extra
Django 缓存.信号和extra Django 缓存 由于Django是动态网站,所以每次请求均会去数据库进行相应的操作,当程序访问量大时,耗时必然会显著增加.最简单的解决方法是:使用缓存,缓存将 ...
随机推荐
- 慢日志之二:ERROR 1146 (42S02): Table 'mysql.slow_log' doesn't exist,分析诊断工具之四
去查看最新的slow log,发现没有最新的记录,上去检查slow log是否开启了. MySQL> show variables like '%slow%'; +--------------- ...
- Java-Runoob-高级课程:Java 8 新特性
ylbtech-Java-Runoob-高级课程:Java 8 新特性 1.返回顶部 1. Java 8 新特性 Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本. Or ...
- Java-Runoob-高级教程:Java 泛型
ylbtech-Java-Runoob-高级教程:Java 泛型 1.返回顶部 1. Java 泛型 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检 ...
- SpringBoot中RedisTemplate订阅发布对象
解说 RedisMessageListenerContainer Redis订阅发布的监听容器,你的消息发布.订阅配置都必须在这里面实现 addMessageListener(MessageListe ...
- python学习(二十) Python 中的比较:is 与 ==
Python 中的比较:is 与 == 在 Python 中会用到对象之间比较,可以用 ==,也可以用 is .但是它们的区别是什么呢? is 比较的是两个实例对象是不是完全相同,它们是不是同一个对象 ...
- open the flashback
1.打开flashback: 关闭数据库 启动到mount方式 SQL>startup mount; 如果归档没有打开,打开归档[因为flashback依赖Media recovery,所以在打 ...
- python学习笔记(十一):网络编程
一.python操作网络,也就是打开一个网站,或者请求一个http接口,使用urllib模块. urllib模块是一个标准模块,直接import urllib即可,在python3里面只有urllib ...
- sqlite在终端中输入命令不显示
问题: 今天通过命令想访问我设备里面的db文件,但是进入到 sqlite> 后,输入命令都是不显示的,但是回车是可以执行的.如图 经过一番排查后,发现,因为我前面使用了su命令,不要使用su命令 ...
- 表单验证常用的JS正则表达式
在表单验证中,使用正则表达式来验证正确与否是一个很频繁的操作,本文收集整理了15个常用的javaScript正则表达式,其中包括用户名.密码强度.整数.数字.电子邮件地址(Email).手机号码.身份 ...
- AnimatorController即动画控制器创建的BUG
//-------------------------------------------------------------------------------------------------- ...