国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

django開發教程之利用緩存文件進行頁面緩存的方法

2020-02-16 10:39:47
字體:
來源:轉載
供稿:網友

前言

由于Django是動態網站,所有每次請求均會去數據進行相應的操作,當程序訪問量大時,耗時必然會更加明顯,最簡單解決方式是使用:緩存,緩存將一個某個views的返回值保存至內存或者Redis中,5分鐘內再有人來訪問時,則不再去執行view中的操作,而是直接從內存或者Redis中之前緩存的內容拿到,并返回。

首先我們先來了解下瀏覽器的緩存

瀏覽器緩存機制

Cache-control策略Cache-Control與Expires的作用一致,都是指明當前資源的有效期,控制瀏覽器是否直接從瀏覽器緩存取數據還是重新發請求到服務器取數據。只不過Cache-Control的選擇更多,設置更細致,如果同時設置的話,其優先級高于Expires。

還是上面那個請求,web服務器返回的Cache-Control頭的值為max-age=300,即5分鐘(和上面的Expires時間一致,這個不是必須的)。

Last-Modified/If-Modified-SinceLast-Modified/If-Modified-Since要配合Cache-Control使用。lLast-Modified:標示這個響應資源的最后修改時間。web服務器在響應請求時,告訴瀏覽器資源的最后修改時間。lIf-Modified-Since:當資源過期時(使用Cache-Control標識的max-age),發現資源具有Last-Modified聲明,則再次向web服務器請求時帶上頭If-Modified-Since,表示請求時間。web服務器收到請求后發現有頭If-Modified-Since則與被請求資源的最后修改時間進行比對。若最后修改時間較新,說明資源又被改動過,則響應整片資源內容(寫在響應消息包體內),HTTP 200;若最后修改時間較舊,說明資源無新修改,則響應HTTP 304 (無需包體,節省瀏覽),告知瀏覽器繼續使用所保存的cache。

在實際中開發應用中,我們會用到緩存,其實在django開發中我們也能用到緩存,現在django給我們很多緩存方式,我看到的有六種之多吧,可能其余的還有,不在追敘,我采用的是利用文件的緩存,說白了就是把緩存的數據放到請求的電腦中,這樣也是減少一部分的服務器的壓力,那么來看看我的配置。

CACHES = { 'default': {  'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',  'LOCATION': '/var/tmp/django_cache', }}

這是我們利用緩存文件的緩存,那么我們配置好了,來看下我們的使用,首先我們可以全局緩存

使用中間件,經過一系列的認證等操作,如果內容在緩存中存在,則使用FetchFromCacheMiddleware獲取內容并返回給用戶,當返回給用戶之前,判斷緩存中是否已經存在,如果不存在則UpdateCacheMiddleware會將緩存保存至緩存,從而實現全站緩存

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 五大连池市| 阳江市| 冕宁县| 婺源县| 昌黎县| 绥棱县| 利津县| 秭归县| 大方县| 汽车| 商水县| 昌邑市| 旌德县| 九江市| 浙江省| 彭泽县| 黔东| 曲水县| 文成县| 台东市| 余江县| 田林县| 辽阳县| 阳西县| 平塘县| 观塘区| 前郭尔| 黄山市| 扬中市| 郴州市| 许昌市| 莱阳市| 永济市| 左权县| 嘉义市| 南陵县| 商丘市| 昆山市| 本溪市| 本溪市| 富蕴县|