路飞项目背景,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是动态网站,所以每次请求均会去数据库进行相应的操作,当程序访问量大时,耗时必然会显著增加.最简单的解决方法是:使用缓存,缓存将 ...
随机推荐
- Hibernate学习11——配置Hibernate二级缓存
一.缓存的概念: 以空间换时间: 二.Hibernate缓存的分类: 前面我们讲的缓存都是session缓存:也叫一级缓存:get,load等缓存都是内置的,一级缓存: SessionFactor ...
- SpringMVC之八:基于SpringMVC拦截器和注解实现controller中访问权限控制
SpringMVC的拦截器HandlerInterceptorAdapter对应提供了三个preHandle,postHandle,afterCompletion方法. preHandle在业务处理器 ...
- Hive使用druid做连接池代码实现
配置文档 hive_jdbc_url=jdbc:hive2://192.168.0.22:10000/default hive.dbname=xxxxx hive_jdbc_username=root ...
- ORA-01146: cannot start online backup - file 1 is already in backup ORA-01110: data file 1: 'C:\ORACLE\ORADATA\ORCL8\SYSTEM01.DBF'
问题: Error: [1146] ORA-01146: cannot start online backup - file 1 is already in backup ORA-01110: dat ...
- md5加密(4)
package test1; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; pu ...
- AIX存储LV PV VG (转载)
1.基本概念:PV 物理卷:普通的直接访问的存储设备,有固定的和可移动的之分,代表性的就是硬盘.vg 卷组:AIX中最大的存储单位,一个卷组由一组物理硬盘组成,也就是由一个或多个物理卷组成.pp 物理 ...
- C和指针 第三章--数据
简要概述: <C和指针>第三章对数据进行了描述. 其中主要讲解了---变量的三个属性:作用域.链接属性和存储类型. 这三个属性决定了该变量在“什么地方可以使用”以及“该变量的值能够保持多久 ...
- java并发的基本概念和级别
并发的概念: 并发(Concurrency)和并行(Parallelism) 并发偏重于多个任务交替执行,而多个任务之间有可能还是串行的.而并行是真正意义上的“同时执行”.严格意义上来说,并行的多个任 ...
- CentOS7.6安装PM2(Npm方式全局安装)
安装前提: 1. node环境 2. npm 安装开始: 第一步:全局安装,npm install -g pm2 第二步: 保存当前进程状态,pm2 save 第三步: 生成开机自启动服务,pm2 s ...
- 教你用一行Python代码实现并行(转)
教你用一行Python代码实现并行 本文教你通过一行Python实现并行化. Python在程序并行化方面多少有些声名狼藉.撇开技术上的问题,例如线程的实现和GIL,我觉得错误的教学指导才是主要问题. ...