一、contentType组件
1、干什么用的?
是一个django内置的一个组件,方便我们快速的连表操作
2、这两个字段都不会在数据库中生成,他只是用来查询,插入的
-在course表中: policy = GenericRelation('PricePolicy', object_id_field='course_id', content_type_field='tyble_id') -在价格策略表中: content_obj = GenericForeignKey('table_id', 'course_id')
二、Django的缓存:Django是一个大而全的好东西
1、缓存机制的 优缺点:
优点:把一些经常访问的页面放入缓存当中,请求来了,直接到缓存中拿数据
缺点:缓存的数据不能实时更新
2、Django缓存机制有什么用?
提高网站的访问效率,有以下几种方式:前端用cdn来做,后台可以用缓存,数据库可以来优化,从三个角度分析,每个层面能够干什么
3、Django中的6种缓存方式:用的比较常见的有文件缓存和Mecache缓存
(1)开发调试缓存---> 此模式为开发调试使用,实际上不执行任何操作
(2)内存缓存---> 将缓存内容保存至内存区域中
(3)文件缓存---> 把缓存数据存储在文件中
(4)数据库缓存---> 把缓存数据存储在数据库中
(5)Memcache缓存(使用python-memcacheed模块连接memcache)---> Memcache是Django原生支持缓存系统,需要下载Memcached支持库python-Memcached或pylibme
(6)Memcache(使用pylibmc模块)---> 是基于内存的缓存,数据库存储在内存中,
所以如果服务器死机的话,数据就会丢失,所以Memcached一般与其他缓存配合使用
4、Django的基本用法是做什么用?
Django提供了不同粒度的缓存,可以缓存某个页面,可以只缓存一个页面的某一个部分,甚至可以缓存整个网站,指定将缓存数据保存多久
5、几种缓存机制:
(1)全站缓存:两个中间件
MIDDLEWARE_CLASSES = ( ‘django.middleware.cache.UpdateCacheMiddleware’, #第一 'django.middleware.common.CommonMiddleware', ‘django.middleware.cache.FetchFromCacheMiddleware’, #最后 )
(2)单页面缓存:
from django.views.decorators.cache import cache_page # 装饰器加载视图函数上即可 @cache_page(5)
(3)页面局部缓存:
{% load cache %} # 第一个参数是时间,第二个参数是别名 {% cache 5 'test' %} 缓存的时间: {{ ctime }} {% endcache %}