Django缓存系统

为什么要做django缓存?

在动态网站中,用户每次请求一个页面,服务器都会执行以下操作:查询数据库,渲染模板,执行业务逻辑,最后生成用户可查看的页面。

这会消耗大量的资源,当访问用户量非常大时,就要考虑这个问题了。

缓存就是为了防止重复计算,把那些消耗了大量资源的结果保存起来,下次访问时就不用再次计算。

Django缓存系统:

Django提供了自己的缓存系统,可以自己保存动态网页,为了避免在需要的时候重新计算。

Django缓存架构可以缓存:特定视图的输出,模板的一部分,整个网站。

在Django项目中使用缓存:

在数据库中设置缓存:

配置项目的settings.py文件,添加代码:

CACHES = {
   'default': {
      'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
      'LOCATION': 'my_table_name',
   }
} 
创建缓存表

python manage.py createcachetable
在文件系统中设置缓存:

配置项目的settings.py文件,添加代码:

CACHES = {
   'default': {
      'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
      'LOCATION': '/var/tmp/django_cache',
   }
}
在本地内存中设置缓存:

配置项目的settings.py文件,添加代码:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
        'LOCATION': 'unique-snowflake'
    }
}
缓存整个网站:

缓存整个网站可以通过编辑项目settings.py的MIDDLEWARE_CLASSES选项来完成,注意顺序,先更新,再获取。

MIDDLEWARE_CLASSES = (
   'django.middleware.cache.UpdateCacheMiddleware',
   'django.middleware.common.CommonMiddleware',
   'django.middleware.cache.FetchFromCacheMiddleware',
)
还有一些通用设置:
CACHE_MIDDLEWARE_ALIAS = 'default'    #用来存储的缓存别名
CACHE_MIDDLEWARE_SECONDS = 0  #所有页面默认缓存时间,默认600
CACHE_MIDDLEWARE_KEY_PREFIX ='www.demo.com'  #关键的前缀,当多个站点使用同一个配置的时候,
这个可以设置可以避免发生冲突,一般设置为网站域名
CACHE_MIDDLEWARE_ANONYMOUS_ONLY = False #那么只有匿名的请求会被缓存,这是一个禁用缓存非匿
名用户页面的最简单的做法,注意确保已经启用了Django用户认证中间件


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值