最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談Python的Django框架中的緩存控制

 更新時間:2015年07月24日 11:06:02   投稿:goldensun  
這篇文章主要介紹了Python的Django框架中的緩存控制,包括Vary頭部以外的其他頭部使用等,需要的朋友可以參考下

關于緩存剩下的問題是數(shù)據的隱私性以及在級聯(lián)緩存中數(shù)據應該在何處儲存的問題。

通常用戶將會面對兩種緩存: 他或她自己的瀏覽器緩存(私有緩存)以及他或她的提供者緩存(公共緩存)。 公共緩存由多個用戶使用,而受其他某人的控制。 這就產生了你不想遇到的敏感數(shù)據的問題,比如說你的銀行賬號被存儲在公眾緩存中。 因此,Web 應用程序需要以某種方式告訴緩存那些數(shù)據是私有的,哪些是公共的。

解決方案是標示出某個頁面緩存應當是私有的。 要在 Django 中完成此項工作,可使用 cache_control 視圖修飾器: 例如:

from django.views.decorators.cache import cache_control

@cache_control(private=True)
def my_view(request):
  # ...

該修飾器負責在后臺發(fā)送相應的 HTTP 頭部。

還有一些其他方法可以控制緩存參數(shù)。 例如, HTTP 允許應用程序執(zhí)行如下操作:

  •     定義頁面可以被緩存的最大時間。
  •     指定某個緩存是否總是檢查較新版本,僅當無更新時才傳遞所緩存內容。 (一些緩存即便在服務器頁面發(fā)生變化的情況下仍然會傳送所緩存的內容,只因為緩存拷貝沒有過期。)

在 Django 中,可使用 cache_control 視圖修飾器指定這些緩存參數(shù)。 在本例中, cache_control 告訴緩存對每次訪問都重新驗證緩存并在最長 3600 秒內保存所緩存版本:

from django.views.decorators.cache import cache_control

@cache_control(must_revalidate=True, max_age=3600)
def my_view(request):
  # ...

在 cache_control() 中,任何合法的Cache-Control HTTP 指令都是有效的。下面是完整列表:

  public=True

  private=True

  no_cache=True

  no_transform=True

  must_revalidate=True

  proxy_revalidate=True

  max_age=num_seconds

  s_maxage=num_seconds

緩存中間件已經使用 CACHE_MIDDLEWARE_SETTINGS 設置設定了緩存頭部 max-age 。 如果你在cache_control修飾器中使用了自定義的max_age,該修飾器將會取得優(yōu)先權,該頭部的值將被正確地被合并。

如果你想用頭部完全禁掉緩存,django.views.decorators.cache.never_cache裝飾器可以添加確保響應不被緩存的頭部信息。 例如:

from django.views.decorators.cache import never_cache

@never_cache
def myview(request):
  # ...

其他優(yōu)化

Django 帶有一些其它中間件可幫助您優(yōu)化應用程序的性能:

  •     django.middleware.http.ConditionalGetMiddleware 為現(xiàn)代瀏覽器增加了有條件的,基于 ETag 和 Last-Modified 頭標的GET響應的相關支持。
  •     django.middleware.gzip.GZipMiddleware 為所有現(xiàn)代瀏覽器壓縮響應內容,以節(jié)省帶寬和傳送時間。

MIDDLEWARE_CLASSES 的順序

如果使用緩存中間件,注意在MIDDLEWARE_CLASSES設置中正確配置。 因為緩存中間件需要知道哪些頭部信息由哪些緩存區(qū)來區(qū)分。 中間件總是盡可能得想Vary響應頭中添加信息。

UpdateCacheMiddleware在相應階段運行。因為中間件是以相反順序運行的,所有列表頂部的中間件反而last在相應階段的最后運行。 所有,你需要確保UpdateCacheMiddleware排在任何可能往Vary頭部添加信息的中間件之前。 下面的中間件模塊就是這樣的:

  •     添加 Cookie 的 SessionMiddleware
  •     添加 Accept-Encoding 的 GZipMiddleware
  •     添加Accept-Language的LocaleMiddleware

另一方面,F(xiàn)etchFromCacheMiddleware在請求階段運行,這時中間件循序執(zhí)行,所以列表頂端的項目會首先執(zhí)行。 FetchFromCacheMiddleware也需要在會修改Vary頭部的中間件之后運行,所以FetchFromCacheMiddleware必須放在它們后面。

相關文章

  • python網絡編程實例簡析

    python網絡編程實例簡析

    這篇文章主要介紹了python網絡編程,有不錯的借鑒價值,需要的朋友可以參考下
    2014-09-09
  • 淺談Python中range和xrange的區(qū)別

    淺談Python中range和xrange的區(qū)別

    本篇文章主要介紹了淺談Python中range和xrange的區(qū)別,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • 使用python flask框架開發(fā)圖片上傳接口的案例詳解

    使用python flask框架開發(fā)圖片上傳接口的案例詳解

    剛領導安排任務,需求是這樣的開發(fā)一個支持多格式圖片上傳的接口,并且將圖片壓縮,支持在線預覽圖片,下面小編分享下使用python flask框架開發(fā)圖片上傳接口的案例詳解,感興趣的朋友一起看看吧
    2022-04-04
  • python矩陣的轉置和逆轉實例

    python矩陣的轉置和逆轉實例

    今天小編就為大家分享一篇python矩陣的轉置和逆轉實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python的OptionParser模塊示例教程

    Python的OptionParser模塊示例教程

    這篇文章主要介紹了Python的OptionParser模塊教程,本文通過示例代碼給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • Python字節(jié)串類型bytes及用法

    Python字節(jié)串類型bytes及用法

    這篇文章介紹了Python字節(jié)串類型bytes及用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • 如何用python繪制雷達圖

    如何用python繪制雷達圖

    這篇文章主要介紹了如何用python繪制雷達圖,幫助大家更好的利用python進行數(shù)據分析,感興趣的朋友可以了解下
    2021-04-04
  • Python使用SocketServer模塊編寫基本服務器程序的教程

    Python使用SocketServer模塊編寫基本服務器程序的教程

    SocketServer模塊中集成了實現(xiàn)socket通信服務器功能所需的各種類和方法,這里我們就來看一下Python使用SocketServer模塊編寫基本服務器程序的教程:
    2016-07-07
  • Python遠程開發(fā)環(huán)境部署與調試過程圖解

    Python遠程開發(fā)環(huán)境部署與調試過程圖解

    這篇文章主要介紹了Python遠程開發(fā)環(huán)境部署與調試過程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • 淺談numpy數(shù)組的幾種排序方式

    淺談numpy數(shù)組的幾種排序方式

    這篇文章主要介紹了淺談numpy數(shù)組的幾種排序方式,涉及對numpy的簡單介紹和創(chuàng)建數(shù)組的方式,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12

最新評論

武功县| 仁怀市| 股票| 原平市| 昭苏县| 威信县| 新沂市| 大安市| 平昌县| 永安市| 肇源县| 修武县| 星子县| 盐亭县| 葫芦岛市| 和平区| 涿鹿县| 碌曲县| 武冈市| 河曲县| 南皮县| 莱西市| 南京市| 卓资县| 剑川县| 凤庆县| 宁远县| 汶川县| 辽阳县| 溧水县| 弥勒县| 徐闻县| 古田县| 永济市| 沿河| 聊城市| 界首市| 安达市| 班玛县| 彭山县| 天水市|