路飞项目背景,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是动态网站,所以每次请求均会去数据库进行相应的操作,当程序访问量大时,耗时必然会显著增加.最简单的解决方法是:使用缓存,缓存将 ...
随机推荐
- 3dmax卡通渲染插件pencil+渲染线框
转自:http://www.cr173.com/soft/179512.html http://www.psoft.co.jp/jp/ 官网和YTB有 2代的视频教程,平均每个2分钟长,无解说,是日文 ...
- Linux学习笔记 - Shell 输出命令
1. echo 命令 echo 是基本的shell输出命令,她的语法是: echo string 我们也可以使用她来定制一些输出的格式,具体如下: 输出普通字符串 echo "it is a ...
- 简单IOCP例子
使用IOCP模型编程的优点 ① 帮助维持重复使用的内存池.(与重叠I/O技术有关) ② 去除删除线程创建/终结负担. ③ 利于管理,分配线程,控制并发,最小化的线程上下文切换. ④ 优化线程调度,提高 ...
- Windows Azure 应用程序短暂性故障处理
这两天在做一个Windows Azure blob存储备份的的一个小功能,但是每次使用CloudBlockBlob.UploadFromStream上传本地文件到Blob Storage,总是不成功报 ...
- 根据段落编号自动添加书签的VBA
Sub 宏1() ' ' 宏1 宏 ' ' Dim myRange As Word.Range Dim num As String, content As String Selection.Ho ...
- "网页安全政策"(Content Security Policy,缩写 CSP)的来历
作者:阿里聚安全链接:https://www.zhihu.com/question/21979782/answer/122682029来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...
- ubuntu下安装stm32开发环境
在windowns下开发stm32刚开始学最烦的就是创建工程模板,都不知道为什么要那样设置,而且步骤繁多.现在我告诉大家一个好消息,在linux下配置stm32开发环境包括创建工程,使用JLink仿真 ...
- 基于 DirectX11 的 MMDViewer 04-渲染目标视图和多视口
上篇文章给出了一个简单并且可以运行的渲染框架,接下来将介绍框架中的渲染管线构成. 1.创建渲染管线 在你创建完一个窗口后,接着便要创建渲染管线,使用的函数是 D3D11CreateDeviceAndS ...
- Java设计模式之——抽象工厂
抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂.该超级工厂又称为其他工厂的工厂.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在抽 ...
- Linux实战教学笔记41:企业级SVN版本管理与大型代码上线方案
第1章 SVN服务实战应用指南 1.1 SVN介绍 1.1.1 什么是SVN(Subversion)? Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN ...