Django模板片段快取

2021-09-26 13:02:12 字數 1654 閱讀 2903

如果想對快取進行更多的控制,可以使用cache模板標籤來快取模板的乙個片段。 要讓模板處理這個標籤,把放在快取片段的上面。

標籤將按給定的時間快取包含塊中的內容。 它最少需要兩個引數:快取時間(以秒為單位);給快取片段起的名稱。 該名稱將被視為是,不使用變數。 像這樣:

.. sidebar ..

有時,你可以依據這個片段內的動態內容快取多個版本。 如上個例子中,可以給站點的每個使用者生成不同版本的sidebar快取。 只需要給標籤再傳遞乙個引數來標識區分這個快取片段。

.. sidebar for logged in user ..

指定乙個以上的引數來識別片段是非常好的。 簡單的盡可能的傳遞你需要的引數到

如果use_i18n設定為true,則每個**中介軟體快取將respect the active language。 對於cache模板標記,您可以使用模板中提供的translation-specific variables之一來實現相同的結果:

快取超時可以是模板變數,只要模板變數解析為整數值即可。 例如,如果模板變數600設定為值my_timeout,則以下兩個示例是等效的:

... 

...

此功能有助於避免模板中的重複。 您可以在乙個位置設定變數的超時,只需重複使用該值。

預設情況下,快取標籤將嘗試使用名為「template_fragments」的快取。 如果不存在這樣的快取,則它將回退到使用預設快取。 您可以選擇要與using關鍵字引數一起使用的備用快取記憶體後端,該引數必須是標記的最後乙個引數。

指定未配置的快取名稱被視為錯誤。

django.core.cache.utils。make_template_fragment_key(fragment_name,vary_on = none)

如果您想獲得用於快取片段快取鍵,就可以使用make_template_fragment_key.fragment_namecache模板標籤的第二個引數相同;vary_on是傳遞給標籤的所有其他引數的列表。 該功能可以用於無效或覆蓋快取項,例如:

>>> from django.core.cache import cache

>>> from django.core.cache.utils import make_template_fragment_key

# cache key for

>>> key = make_template_fragment_key('sidebar', [username])

>>> cache.delete(key) # invalidates cached template fragment

YII之片段快取

yii的片段快取應用的話挺簡單的 1,在配置檔案裡開啟快取 man.php cache array class system.caching.cfilecache 或者這樣 只是不同的書寫格式而已 cache class yii caching filecache 2,接下來就是使用快取了 直接在v...

Yii 片段快取的使用

yii沒有外掛程式支援頁面靜態化,但很好的支援頁面片段快取,雖然仍然需要經過php處理,考慮到網路因素,已經能和靜態頁面達到差不多的效能效果。下面是 示範,解決的問題是根據使用者會話情況來判斷快取的使用 begincache user div array varybysession 1 如果使用的是...

django 重新整理快取 Django 中的快取問題

django 中的快取問題 簡單介紹 在動態 中,使用者所有的請求,伺服器都會去資料庫中進行相應的增,刪,查,改,渲染模板,執行業務邏輯,最後生成使用者看到的頁面.當乙個 的使用者訪問量很大的時候,每一次的的後台操作,都會消耗很多的服務端資源,所以必須使用快取來減輕後端伺服器的壓力.快取是將一些常用...