1. 程式人生 > >Django框架的使用教程--Cookie-Session[五]

Django框架的使用教程--Cookie-Session[五]

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[五]