昨日回顾:

分页器:

普通分页

  1. # 普通分页
  2. from rest_framework.pagination import PageNumberPagination
  3. -每页的大小(默认)
  4. -查询的时候,按哪个字段查
  5. -当前页的每页大小(用户指定的)
  6. -每页显示最大条数
  7. -写一个类继承分页类,重写属性
  8. -使用的时候:
  9. -实例化出一个分页器对象
  10. -返回值=对象.paginate_queryset(book_list, request, self)
  11. -序列化(返回值)
  12. -return序列化之后的值

偏移分页

  1. # 偏移分页
  2. from rest_framework.pagination import LimitOffsetPagination
  3. -每页的大小:default_limit
  4. -标杆值offset
  5. -偏移值limit
  6. -最大偏移的数:max_limit
  7. 加密分页(速度快)
  1. 加密分页(速度快)
  1. # 加密分页
  2. from rest_framework.pagination import CursorPagination
  3. -写一个类继承分页类,重写属性
  4. -cursor_query_param:以该字段配置的值查询
  5. -ordering 按哪个字段排序

版本控制:

  1. -URLPathVersioning
  2. -版本直接放在路由中,配置路由
  3. url(r'^(?P<version>[v1|v2|v3]+)/books/$', views.Book.as_view({'get':'get_all'}),name='ttt'),
  4. -在setting中配置
  5. 'VERSION_PARAM':'version', #根据哪个键取查询
  6. 'DEFAULT_VERSION':'v1', #默认的版本号
  7. 'ALLOWED_VERSIONS': ['v1', 'v2'], #允许的版本号
  8. -在视图类中:局部使用
  9. versioning_class = URLPathVersioning
  10. -在request对象中,可以取出版本request.version
  11. -反向解析
  12. -因为request对象能取出版本号,内部自动填入
  13. -url2=request.versioning_scheme.reverse('ttt',request=request)
  14. -如果是路由有别的有名/无名分组,需要手动传过去
  15. -QueryParameterVersioning

路飞项目背景

  1. 人员配比:
  2. 开发:
  3. -前端vue一个人
  4. -主站 2个人
  5. -导师后台 1 个人
  6. -管理员后台 1个人
  7. ui+原型设计 1 个人
  8. 产品经理 1 个人
  9. 测试 1个人
  10. 专职导师:2个人
  11. 项目:
  12. 主站:
  13. -课程
  14. -课程详情
  15. -课程章节
  16. -课程的价格策略
  17. -个人中心
  18. -登录
  19. -注册
  20. -修改密码
  21. -...
  22. -购物车
  23. -加入购物车
  24. -修改购物车
  25. -支付中心
  26. -去支付
  27. -优惠券
  28. -6种优惠券:全站的:满减,立减,打折 每个课程:满减,立减,打折
  29. -去支付
  30. -支付宝支付
  31.  
  32. -推送
  33. -微信推送
  34. -视频播放
  35.  
  36. 咱们要写的:
  37. 课程相关的,登录,购物车,支付中,支付宝支付,推送,视频播放

contentType组件

  1. 干啥用的?django内置的一个组件,方便我们快速的连表操作
  2. course表中:
  3. policy = GenericRelation('PricePolicy', object_id_field='course_id', content_type_field='table_id')
  4.  
  5. 在价格策略表中:
  6. content_obj = GenericForeignKey('table_id','course_id')
  7. --加的这两个字段都不会在数据库中生成,它只是用来查询,插入

django的缓存

全站缓存:

  1. 两个中间件:
  2. MIDDLEWARE_CLASSES = (
  3. django.middleware.cache.UpdateCacheMiddleware’, #第一
  4. 'django.middleware.common.CommonMiddleware',
  5. django.middleware.cache.FetchFromCacheMiddleware’, #最后
  6. )

单页面缓存:

  1. -from django.views.decorators.cache import cache_page
  2. -装饰器加载视图函数上即可
  3. @cache_page(5)

页面局部缓存:

  1. {% load cache %}
  2. #第一个参数是时间,第二个参数是别名
  3. {% cache 5 'test' %}
  4. 缓存的时间:
  5. {{ ctime }}
  6. {% endcache %}
  7.  
  8. 缓存的位置:(只需要改配置文件)
  9. 内存
  10. 文件
  11. 数据库
  12. redis

路飞项目背景,contentType以及django缓存的更多相关文章

  1. contenttype组件、Django缓存机制以及跨域请求

    1 昨日回顾 版本控制 *** (1)url=127.0.0.1/course/?version=v100000 1 versioning_class=QueryParameterVersioning ...

  2. ContentType组件,Django缓存机制,跨域请求

    ContentType组件 解决什么问题:表的id和数据id,来唯一确定一条数据 用: 插入数据: models:content_obj = GenericForeignKey('table_id', ...

  3. drf版本控制 和django缓存,跨域问题,

    drf版本控制 基于url的get传参方式 REST_FRAMEWORK={ # "DEFAULT_AUTHENTICATION_CLASSES":["app01.aut ...

  4. 大数据项目之_15_电信客服分析平台_01&02_项目背景+项目架构+项目实现+数据生产+数据采集/消费(存储)

    一.项目背景二.项目架构三.项目实现3.1.数据生产3.1.1.数据结构3.1.2.编写代码3.1.3.打包测试3.2.数据采集/消费(存储)3.2.1.数据采集:采集实时产生的数据到 kafka 集 ...

  5. 一.rest-framework之版本控制 二、Django缓存 三、跨域问题 四、drf分页器 五、响应器 六、url控制器

    一.rest-framework之版本控制 1.作用 用于版本的控制 2.内置的版本控制 from rest_framework.versioning import QueryParameterVer ...

  6. Django缓存设置

    由于Django构建得是动态网站,每次客户端请求都要严重依赖数据库,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中, ...

  7. s11 day100路飞项目逻辑购物车一

    Luffy项目 先看练习,如下: 一. 添加购物车和查看 1. url url(r'^shoppingcar/$', shoppingcar.ShoppingCarView.as_view({&quo ...

  8. Web项目开发中用到的缓存技术

    在WEB开发中用来应付高流量最有效的办法就是用缓存技术,能有效的提高服务器负载性能,用空间换取时间.缓存一般用来 存储频繁访问的数据 临时存储耗时的计算结果 内存缓存减少磁盘IO 使用缓存的2个主要原 ...

  9. Django 2.0 学习(18):Django 缓存、信号和extra

    Django 缓存.信号和extra Django 缓存 由于Django是动态网站,所以每次请求均会去数据库进行相应的操作,当程序访问量大时,耗时必然会显著增加.最简单的解决方法是:使用缓存,缓存将 ...

随机推荐

  1. Hibernate学习11——配置Hibernate二级缓存

    一.缓存的概念: 以空间换时间:   二.Hibernate缓存的分类: 前面我们讲的缓存都是session缓存:也叫一级缓存:get,load等缓存都是内置的,一级缓存: SessionFactor ...

  2. SpringMVC之八:基于SpringMVC拦截器和注解实现controller中访问权限控制

    SpringMVC的拦截器HandlerInterceptorAdapter对应提供了三个preHandle,postHandle,afterCompletion方法. preHandle在业务处理器 ...

  3. Hive使用druid做连接池代码实现

    配置文档 hive_jdbc_url=jdbc:hive2://192.168.0.22:10000/default hive.dbname=xxxxx hive_jdbc_username=root ...

  4. 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 ...

  5. md5加密(4)

    package test1; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; pu ...

  6. AIX存储LV PV VG (转载)

    1.基本概念:PV 物理卷:普通的直接访问的存储设备,有固定的和可移动的之分,代表性的就是硬盘.vg 卷组:AIX中最大的存储单位,一个卷组由一组物理硬盘组成,也就是由一个或多个物理卷组成.pp 物理 ...

  7. C和指针 第三章--数据

    简要概述: <C和指针>第三章对数据进行了描述. 其中主要讲解了---变量的三个属性:作用域.链接属性和存储类型. 这三个属性决定了该变量在“什么地方可以使用”以及“该变量的值能够保持多久 ...

  8. java并发的基本概念和级别

    并发的概念: 并发(Concurrency)和并行(Parallelism) 并发偏重于多个任务交替执行,而多个任务之间有可能还是串行的.而并行是真正意义上的“同时执行”.严格意义上来说,并行的多个任 ...

  9. CentOS7.6安装PM2(Npm方式全局安装)

    安装前提: 1. node环境 2. npm 安装开始: 第一步:全局安装,npm install -g pm2 第二步: 保存当前进程状态,pm2 save 第三步: 生成开机自启动服务,pm2 s ...

  10. 教你用一行Python代码实现并行(转)

    教你用一行Python代码实现并行 本文教你通过一行Python实现并行化. Python在程序并行化方面多少有些声名狼藉.撇开技术上的问题,例如线程的实现和GIL,我觉得错误的教学指导才是主要问题. ...