135-1821-9792

django缓存的使用方法

这篇文章主要介绍django缓存的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

创新互联是一家专注于做网站、网站建设与策划设计,眉山网站建设哪家好?创新互联做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:眉山等地区。眉山做网站价格咨询:18980820575

通常,计算值是昂贵的(即资源匮乏和缓慢),因此将值保存到可快速访问的缓存中可以有巨大的好处,为下一次需要做好准备。

这是一个足够重要和强大的技术,Django包括一个综合的缓存框架,以及其他较小的缓存功能。

django是动态网页,一般来说需要实时的生成访问的页面,展示给访问者,这样,内容可以随时变化,也就说请求到达视图函数之后,然后进行模板渲染,将字符串返回给用户,用户会看到相应的html页面。但是如果每次请求都从数据库中请求并获取数据,并且当用户并发量十分大的时候,这将服务器性能将大大受到影响。因此使用缓存能有效的解决这类问题。如果能将渲染后的结果放到速度更快的缓存中,每次有请求过来,先检查缓存中是否有对应的资源,如果有,直接从缓存中取出来返回响应,节省取数据和渲染的时间,不仅能大大提高系统性能,还能提高用户体验。

缓存的适合场景

对页面实时性要求不高的页面。对于大多数的购物网站,短期内商品的描述是没有变化的,可以使用缓存。

缓存优先级

由django的生命周期知各级缓存的优先级:中间件应用的全局缓存>视图函数缓存>模板渲染下的局部视图使用缓存。

局部视图 使用

在模板的顶端附近加入{% load cache %}以通知模板存取缓存标签。

模板标签{% cache %}在给定的时间内缓存了块的内容。 它至少需要两个参数: 缓存超时时间(以秒计)和指定缓存片段的名称。

{#局部缓存  静态数据缓存#}
{% load cache %}
{#引入TemplateTage#}



    
    cache


{#    小力度细致缓存#}
    {% cache 5 c1 %}
{#两个参数: 缓存超时时间(以秒计)和指定缓存片段的名称。 #}
          .. sidebar ..
    {% endcache %}

单独视图缓存 使用

from django.views.decorators.cache import cache_page
@cache_page(10)
#参数为缓存失效时间
def cache(request):
    pass

全局缓存  配置

MIDDLEWARE = [
    'django.middleware.cache.UpdateMiddleware',
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.FrameOptionsMiddleware',    'django.middleware.cache.FetchFromCacheMiddleware',
]

'django.middleware.cache.UpdateMiddleware',

 服务端响应response时作用 查看是否有缓存,如果没有则写入缓存,否则直接返回给客户端

'django.middleware.cache.FetchFormCacheMiddleware',

客户端请求request时作用 查看是否有缓存,如果有不经过views直接返回,否则进入views视图执行函数获取缓存

 客户端第一次发出请求是通常是没有缓存的,

 因此request请求由中间件FetchForm经过检查没有缓存后进入views,

 然后response携带缓存到中间件Update后写入缓存,再返回给客户端。

以上是django缓存的使用方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


网站题目:django缓存的使用方法
文章路径:http://kswsj.com/article/jocgei.html

其他资讯



Copyright © 2009-2022 www.kswsj.com 成都快上网科技有限公司 版权所有 蜀ICP备19037934号