中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

django緩存的使用方法

發布時間:2020-09-02 09:56:22 來源:億速云 閱讀:199 作者:小新 欄目:編程語言

這篇文章主要介紹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緩存的使用方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

墨脱县| 清河县| 商城县| 津南区| 吴江市| 乐昌市| 满洲里市| 蛟河市| 华坪县| 临清市| 安西县| 乳山市| 凉城县| 太康县| 高阳县| 梅河口市| 澎湖县| 四子王旗| 浦北县| 靖西县| 昆明市| 兴海县| 乌鲁木齐市| 介休市| 阳原县| 法库县| 满洲里市| 平遥县| 靖边县| 监利县| 灯塔市| 米泉市| 普安县| 民县| 定西市| 云梦县| 平谷区| 安龙县| 房山区| 苏州市| 平凉市|