Django 快取機制

2022-05-05 03:27:11 字數 2412 閱讀 5317

在動態**中,使用者所有的請求,伺服器都回去伺服器中的進行相應的增、刪、查、改,渲染模板,執行業務邏輯,最後生成使用者看到的頁面。

當乙個**的使用者訪問量很大的時候,每一次的後台操作,都會消耗很多的服務端資源,所以必須使用快取來減輕後端伺服器的壓力。

快取是將一些常用的資料儲存記憶體或者memcache中,在一定時間內有人來訪問足額寫資料時,則不再去執行資料庫以及渲染等操作,而是直接從記憶體或memcache的快取中取的資料,然後返回給使用者,主要目的是為了提高**的併發量。

經常使用的有檔案快取和mencache快取。

caches =,

}}

caches =  

}}

caches =

}

}

caches =  

}

}

建立快取資料庫的語句為:

python manage.py createcachetable

caches =

}}

settings.py檔案配置

caches =,

} }

memcached是基於記憶體的快取,資料儲存在記憶體中.所以如果伺服器宕機的話,資料就會丟失,所以memcached一般與其他快取配合使用

利用檔案快取,在頁面中快取當前時間,快取重新整理時間為5秒
需求urls.py

from django.conf.urls import

urlfrom django.contrib import

admin

test

urlpatterns =[

url(r

'^admin/

', admin.site.urls),

url(r

'^test/$

', test,name='

test'),

]

views.py

from django.shortcuts import

render

from django.views.decorators.cache import

cache_page

import

time

@cache_page(5) #

裝飾器,快取時間為5秒,單頁面快取時使用,當為區域性快取和全站快取時時將其注釋

deftest(request):

ctime =time.time()

return render(request,'

time.html

',locals())

settings.py

caches =

}}

time.html (單頁面快取和全站快取)

doctype html

>

<

html

lang

="en"

>

<

head

>

<

meta

charset

="utf-8"

>

<

title

>檔案快取測試

title

>

head

>

<

body

>

}body

>

html

>

time.html (區域性頁面快取)

doctype html

>

<

html

lang

="en"

>

<

head

>

<

meta

charset

="utf-8"

>

<

title

>檔案快取測試

title

>

head

>

<

body

>

<

br>

body

>

html

>

全站快取時的settiongs中新增兩個中介軟體和乙個快取時間配置

middleware = [

'django.middleware.cache.updatecachemiddleware',

...'django.middleware.cache.fetchfromcachemiddleware'

]cache_middleware_seconds=5 #快取重新整理時間

django快取機制

django提供了不同級別的快取粒度 可以快取特定檢視的輸出 可以僅僅快取那些很難生產出來的部分 可以快取整個 設定快取 可將資料快取在資料庫,檔案系統,和記憶體中 setting.py 使用記憶體來進行快取 caches 使用redis進行快取 安裝包 pip install django red...

django快取機制

django有多種快取機制,常見的有 記憶體,資料庫,檔案 說白了,就是將快取放到記憶體,資料庫,檔案 資料庫快取方式 1.建立一張資料庫表 python manage.py createcachetable my table cache 2.配置設定 caches 3.使用快取 4.實現 cach...

Django快取機制

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