django之頁面緩存


一  全站緩存(全局緩存)

在settings中配置,主要就是兩個中間件,需要注意的就是兩個中間件的前后位置

MIDDLEWARE_CLASSES = (
            ‘django.middleware.cache.UpdateCacheMiddleware’, #第一
            'django.middleware.common.CommonMiddleware',
            ‘django.middleware.cache.FetchFromCacheMiddleware’, #最后
            )
# 以秒為單位,緩存事件
CACHE_MIDDLEWARE_SECONDS=10

二  單頁面緩存

不需要在settings中配置,只在需要在需要緩存頁面的視圖函數上加裝飾器

from django.views.decorators.cache import cache_page

# 裝飾器加載視圖函數上即可,括號中的數字為緩存時間,以秒為單位

@cache_page(5)
def time(request):
    import time
    ctime = time.time()
    return render(request,'time.html',locals())

三  頁面局部緩存

不需要在setings中配置,在需要緩存的頁面的局部中就加入一下內容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<p>局部緩存:
    {% load cache %}
    {#第一個參數是時間,第二個參數是別名#}
    {% cache 5 'test' %}
        {{ ctime }}
    {% endcache %}
</p>
<p>沒有緩存:
    {{ ctime }}
</p>


</body>
</html>

四  緩存的位置

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',  # 指定緩存使用的引擎
        'LOCATION': 'D:\lqz\catch',  # 指定緩存的路徑
        'TIMEOUT': 300,  # 緩存超時時間(默認為300秒,None表示永不過期)
        'OPTIONS': {
            'MAX_ENTRIES': 300,  # 最大緩存記錄的數量(默認300)
            'CULL_FREQUENCY': 3,  # 緩存到達最大個數之后,剔除緩存個數的比例,即:1/CULL_FREQUENCY(默認3)
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM