最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • django缓存怎么用

    正文概述    2020-03-14   269

    django缓存怎么用

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

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

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

    缓存的适合场景

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

    缓存优先级

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

    局部视图 使用

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

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

    {#局部缓存  静态数据缓存#}
    {% load cache %}
    {#引入TemplateTage#}
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>cache</title>
    </head>
    <body>
    {#    小力度细致缓存#}
        {% cache 5 c1 %}
    {#两个参数: 缓存超时时间(以秒计)和指定缓存片段的名称。 #}
              .. sidebar ..
        {% endcache %}
    </body>
    </html>

    单独视图缓存 使用

    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缓存怎么用

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元