色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

Django 5種類型Session使用方法解析

瀏覽:3日期:2024-10-09 13:51:31

介紹

Session:在計算機中,尤其是在網絡應用中,稱為“會話控制”。Session 對象存儲特定用戶會話所需的屬性及配置信息。這樣,當用戶在應用程序的 Web 頁之間跳轉時,存儲在 Session 對象中的變量將不會丟失,而是在整個用戶會話中一直存在下去。

當用戶請求來自應用程序的 Web 頁時,如果該用戶還沒有會話,則 Web 服務器將自動創建一個 Session 對象。當會話過期或被放棄后,服務器將終止該會話。Session 對象最常見的一個用法就是存儲用戶的首選項。

session是基于cookie完成的,當用戶打開瀏覽器,去訪問服務器的時候,服務器會為每個用戶的瀏覽器創建一個會話對象(session對象),并且為每個session對象創建一個Jsessionid號。當session對象創建成功后,會以cookie的方式將這個Jsessionid號回寫給瀏覽器,當用戶再次進行訪問服務器時,及帶了具有Jsessionid號的cookie數據來一起訪問服務器,服務器通過不同session的 Jsessionid號來找出與其相關聯的session對象,通過不同的session對象來為不同的用戶服務。

使用

Django中默認支持Session,其內部提供了5種類型的Session供開發者使用:

數據庫(默認) 緩存 文件 緩存+數據庫 加密cookie

數據庫Session

Django默認支持Session,并且默認是將Session數據存儲在數據庫中,即:django_session 表中。 a. 配置 settings.py SESSION_ENGINE = ’django.contrib.sessions.backends.db’ # 引擎(默認) SESSION_COOKIE_NAME = 'sessionid' # Session的cookie保存在瀏覽器上時的key,即:sessionid=隨機字符串(默認) SESSION_COOKIE_PATH = '/'# Session的cookie保存的路徑(默認) SESSION_COOKIE_DOMAIN = None # Session的cookie保存的域名(默認) SESSION_COOKIE_SECURE = False # 是否Https傳輸cookie(默認) SESSION_COOKIE_HTTPONLY = True # 是否Session的cookie只支持http傳輸(默認) SESSION_COOKIE_AGE = 1209600 # Session的cookie失效日期(2周)(默認) SESSION_EXPIRE_AT_BROWSER_CLOSE = False # 是否關閉瀏覽器使得Session過期(默認) SESSION_SAVE_EVERY_REQUEST = False # 是否每次請求都保存Session,默認修改之后才保存(默認) b. 使用 def index(request): # 獲取、設置、刪除Session中數據 request.session[’k1’] request.session.get(’k1’,None) request.session[’k1’] = 123 request.session.setdefault(’k1’,123) # 存在則不設置 del request.session[’k1’] # 所有 鍵、值、鍵值對 request.session.keys() request.session.values() request.session.items() # 3.0無下面3個方法 request.session.iterkeys() request.session.itervalues() request.session.iteritems() # 用戶session的隨機字符串 request.session.session_key # 將所有Session失效日期小于當前日期的數據刪除 request.session.clear_expired() # 檢查 用戶session的隨機字符串 在數據庫中是否 request.session.exists('session_key') # 刪除當前用戶的所有Session數據 request.session.delete('session_key') request.session.delete() request.session.flush() request.session.set_expiry(value) * 如果value是個整數,session會在些秒數后失效。 * 如果value是個datatime或timedelta,session就會在這個時間后失效。 * 如果value是0,用戶關閉瀏覽器session就會失效。 * 如果value是None,session會依賴全局session失效策略。

緩存Session

a. 配置 settings.py

SESSION_ENGINE = ’django.contrib.sessions.backends.cache’ # 引擎SESSION_CACHE_ALIAS = ’default’ # 使用的緩存別名(默認內存緩存,也可以是memcache),此處別名依賴緩存的設置SESSION_COOKIE_NAME = 'sessionid' # Session的cookie保存在瀏覽器上時的key,即:sessionid=隨機字符串SESSION_COOKIE_PATH = '/' # Session的cookie保存的路徑SESSION_COOKIE_DOMAIN = None # Session的cookie保存的域名SESSION_COOKIE_SECURE = False # 是否Https傳輸cookieSESSION_COOKIE_HTTPONLY = True # 是否Session的cookie只支持http傳輸SESSION_COOKIE_AGE = 1209600 # Session的cookie失效日期(2周)SESSION_EXPIRE_AT_BROWSER_CLOSE = False # 是否關閉瀏覽器使得Session過期SESSION_SAVE_EVERY_REQUEST = False # 是否每次請求都保存Session,默認修改之后才保存

b. 使用

同上

文件Session

a. 配置 settings.py

SESSION_ENGINE = ’django.contrib.sessions.backends.file’ # 引擎SESSION_FILE_PATH = None # 緩存文件路徑,如果為None,則使用tempfile模塊獲取一個臨時地址tempfile.gettempdir() #

如:/var/folders/d3/j9tj0gz93dg06bmwxmhh6_xm0000gn/T

SESSION_COOKIE_NAME = 'sessionid' # Session的cookie保存在瀏覽器上時的key,即:sessionid=隨機字符串SESSION_COOKIE_PATH = '/' # Session的cookie保存的路徑SESSION_COOKIE_DOMAIN = None # Session的cookie保存的域名SESSION_COOKIE_SECURE = False # 是否Https傳輸cookieSESSION_COOKIE_HTTPONLY = True # 是否Session的cookie只支持http傳輸SESSION_COOKIE_AGE = 1209600 # Session的cookie失效日期(2周)SESSION_EXPIRE_AT_BROWSER_CLOSE = False # 是否關閉瀏覽器使得Session過期SESSION_SAVE_EVERY_REQUEST = False # 是否每次請求都保存Session,默認修改之后才保存

b. 使用

同上

緩存+數據庫Session

數據庫用于做持久化,緩存用于提高效率

a. 配置 settings.py

SESSION_ENGINE = ’django.contrib.sessions.backends.cached_db’ # 引擎

b. 使用

同上

加密cookie Session

a. 配置 settings.py

SESSION_ENGINE = ’django.contrib.sessions.backends.signed_cookies’ # 引擎

b. 使用

同上

登錄狀態驗證

def login_status(func): def warp(request,*args,**kwargs): user = request.session.get('username') if user: kwargs['username'] = user return func(request,*args,**kwargs) return redirect(login) return warp

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Django
相關文章:
主站蜘蛛池模板: 韩国毛片 | 亚洲美女视频在线 | 日韩免费一区二区三区在线 | 亚洲精品天堂一区在线观看 | se94se最新网站 | 久久精品资源 | a性片| 欧美日韩中文国产一区二区三区 | 国产欧美一区二区日本加勒比 | 国产激情一区二区三区在线观看 | 久久福利青草精品资源站 | 国内精品久久精品 | 牛人盗摄一区二区三区视频 | 日本一道免费一区二区三区 | 曰本女同互慰高清在线观看 | 欧美精品xx | 女人抠逼视频 | 综合558欧美成人永久网站 | 成人黄18免费网站 | 国产日韩久久久久69影院 | 久久精品亚洲精品国产欧美 | 日本成a人片在线观看网址 日本成年人视频网站 | 亚洲日本视频在线观看 | a级毛片网站 | 亚洲第一页乱 | 中国农村一级毛片 | 在线观看亚洲国产 | 长腿校花被啪到腿软视频 | 岛国片欧美一级毛片 | 日本aaaa片毛片免费观看 | 男女男免费视频网站国产 | 国产成人综合洲欧美在线 | 久久国产乱子伦精品免费不卡 | 国产精品久久毛片蜜月 | 国产精品18久久久久久小说 | 131的美女午夜爱爱爽爽视频 | 日韩三级一区二区 | 亚洲国产精品ⅴa在线观看 亚洲国产精品aaa一区 | 欧美综合另类 | 国产伦精品一区二区三区四区 | 国产成人三级 |