Django框架的使用教程--Cookie-Session[五]
阿新 • • 發佈:2018-07-04
request exp print ack coo fault 不同的 安裝 get
Cookie
cookie是存儲在瀏覽器中的一段文本信息,下次同一網站請求,就會發送該cookie給服務器,一般的瀏覽器都有啟動cookie,用cookie存儲信息,最好不要存儲密碼,cookie也有大小
cookie特點
cookie以鍵值對格式進行存儲信息
不同的cookie不能進行相互的訪問
訪問某個網站時,會將某個網站在瀏覽器保存的信息提交到服務器
設置Cookie
讀取Cookie
視圖函數
def get_cookie(request): cookie = request.COOKIES.get(‘gaidy‘) print(cookie)return HttpResponse(‘讀取成功‘)
運行結果
Session
Seesion就是服務器端開辟的一塊內存空間,存放著客戶端瀏覽器窗口的編號,通cookie一樣也是用來記錄用戶的狀態,比cookies簡單。存放方式依然是鍵值對的形式存放。
Django默認啟用session
在apps中安裝session應用
數據庫中有一個django_session的表(表的結構字段有鍵,值,過期時間)
數據庫
安裝redis數據庫擴展
pip install django_redis
設置本地緩存(項目工程settings設置)
SESSION_ENGINE=‘django.contrib.sessions.backends.cache‘
混合存儲
SESSION_ENGINE=‘django.contrib.sessions.backends.cached_db‘
配置redis連接
import django_redis CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/1", "OPTIONS": {"CLIENT_CLASS": "django_redis.client.DefaultClient", } } } SESSION_ENGINE = "django.contrib.sessions.backends.cache" SESSION_CACHE_ALIAS = "default"
Session的操作
def set_session(request): # 設置session的鍵值 request.session[‘gaidy‘] = 25 # 根據鍵讀取值 name = request.session.get(‘gaidy‘) print(name) # 清楚所有的session request.session.flush() name1 = request.session.get(‘gaidy‘) print(name1) return HttpResponse(‘ok‘)
1.設置session
request.session[‘鍵‘]=值
2.根據鍵讀值
request.session.get(‘鍵‘,默認值)
3.清楚所有的session,在存儲中刪除值部分
request.session.clear()
4.清空session數據
request.session.flush()
5.刪除session中的指定鍵及值,在存儲中只刪除某個鍵及對應的值。
del request.session[‘鍵‘]
6.設置session的有效期
request.session.set_expiry(value)
- 如果value是一個整數,session將在value秒沒有活動後過期。
- 如果value為0,那麽用戶session的Cookie將在用戶的瀏覽器關閉時過期。
- 如果value為None,那麽session有效期將采用系統默認值,默認為兩周,可以通過在settings.py中設置SESSION_COOKIE_AGE來設置全局默認值。
Django框架的使用教程--Cookie-Session[五]