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

溫馨提示×

溫馨提示×

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

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

django使用session的方法

發布時間:2020-08-10 11:55:49 來源:億速云 閱讀:156 作者:小新 欄目:編程語言

django使用session的方法?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!

首先確認在 MIDDLEWARE_CLASSES中確保它包含'django.contrib.sessions.middleware.SessionMiddleware',如果不想使用session會話可以刪除這一項.

配置session引擎

默認情況下,django框架會將session數據存儲在數據庫(django框架中默認創建的model里有存儲session的model,這也是為什么在使用前需執行創建數據庫操作的原因,使用django.contrib.sessions.models.Session模型)中。從數據庫相比其他存儲session的方式慢一點,所以可以配置django來存儲session到文件系統或者緩存中。

使用數據庫支持的session

如果你想用數據庫存儲session,需要添加'django.contrib.sessions' 到你的INSTALLED_APPS設置中。并且創建存儲session數據的表。

使用基于緩存的session

使用緩存存儲session,在性能上會比使用數據庫更快。

使用緩存來存儲session必須先進行配置緩存

缺點:本地內存使用緩存不能長時間保留數據,所以不是好的選擇,而且直接使用文件或者數據庫比文件或數據庫緩存速度快。本地緩存系統不是多進程安全的。 

使用CACHES中可以定義多個緩存,Django使用默認緩存,若要用其他緩存,可以設置SESSIONCACHEALIAS為該緩存的名字

配置好緩存之后,有兩種緩存可供選擇

對于簡單的緩存session,可以設置SESSIONENGINE為'django.contrib.sessions.backends.cache',這正方式就是將數據緩存在內存中,不做持久化存儲,如果緩存填滿或者緩存服務器重啟,緩存數據就可能會被清理掉

持久化數據緩存就要使用數據庫,設置SESSIONENGINE為'django.contrib.sessions.backends.cacheddb',在寫數據的時候使用緩存,讀取時先讀緩存中的數據,如果緩存中數據被清理了,就從數據庫中讀取

兩種緩存方式都很快,簡單的更快一點,因為沒有做數據持久化

特殊說明:在1.7 版之前,cacheddb 永遠使用default緩存而不是SESSIONCACHEALIAS。

使用緩存例子:

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
SESSIONCACHEALIAS = 'default'#表示使用緩存的別名,在CACHES中尋找,下面有default和db1兩種選擇 
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': [
'172.19.26.240:11211',
'172.19.26.242:11211',
]
},
'db1': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': [
'172.19.26.240:11211',
'172.19.26.242:11211',
]
}
}

附加內容

CACHES的格式,默認:
{
'default':{
'BACKEND':'django.core.cache.backends.locmen.LocMemCache',
}
}


一個字典包含所有緩存要使用的設置它是一個嵌套字典,其內容將高速緩存別名映射到包含單個高速緩存的選項的字典中。

CACHES設置必須配置‘default’緩存;還可以指定任何數量的附加高速緩存。如果您正在使用本地內存高速緩存之外的其他高速緩存后端,或者需要定義多個高速緩存,這就需要添加其他高速緩存項。以下高速緩存選項可用。
BACKEND
默認值:''(空字符串)
要使用的緩存后端。內置高速緩存后端是:

'django.core.cache.backends.db.DatabaseCache'
'django.core.cache.backends.dummy.DummyCache'
'django.core.cache.backends.filebased.FileBasedCache'
'django.core.cache.backends.locmem.LocMemCache'
'django.core.cache.backends.memcached.MemcachedCache'
'django.core.cache.backends.memcached.PyLibMCCache'


通過將BACKEND設置為緩存后端類的完全限定路徑(即mypackage.backends.whatever.WhateverCache),您可以使用未隨Django提供的緩存后端。 )。

基于文件的session

使用基于文件的session,使用SESSIONENGINE為'django.contrib.sessions.backends.file',使用SESSIONFILE_PATH設置文件的位置,如果不設會使用默認存儲位置為,它的默認值來自tempfile.gettempdir()的輸出,大部分情況是/tmp

使用基于Cookie的session

要使用基于Cookie 的會話,請設置SESSIONENGINE 為"django.contrib.sessions.backends.signedcookies"。此時,會話數據的存儲將使用Django 的加密簽名 工具和SECRET_KEY 設置。
建議保留SESSIONCOOKIEHTTPONLY 設置為True 以防止從JavaScript 中訪問存儲的數據。

感謝各位的閱讀!看完上述內容,你們對django使用session的方法大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

石景山区| 都昌县| 万源市| 若羌县| 慈溪市| 昌图县| 迁安市| 秦安县| 惠安县| 温州市| 湾仔区| 运城市| 延川县| 礼泉县| 和平县| 天长市| 安岳县| 平泉县| 南康市| 银川市| 南皮县| 锡林郭勒盟| 富蕴县| 溆浦县| 石屏县| 乐业县| 丹巴县| 全州县| 乳山市| 青浦区| 达拉特旗| 开化县| 莲花县| 揭西县| 永春县| 建阳市| 内丘县| 皋兰县| 筠连县| 靖宇县| 紫金县|