最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2020年04月29日 14:00:49   作者:Sun_先生  
這篇文章主要介紹了Django 5種類型Session使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

介紹

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

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

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

使用

Django中默認支持Session,其內(nèi)部提供了5種類型的Session供開發(fā)者使用:

  • 數(shù)據(jù)庫(默認)
  • 緩存
  • 文件
  • 緩存+數(shù)據(jù)庫
  • 加密cookie

數(shù)據(jù)庫Session

Django默認支持Session,并且默認是將Session數(shù)據(jù)存儲在數(shù)據(jù)庫中,即: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中數(shù)據(jù)
    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失效日期小于當前日期的數(shù)據(jù)刪除
    request.session.clear_expired()
 
    # 檢查 用戶session的隨機字符串 在數(shù)據(jù)庫中是否
    request.session.exists("session_key")
 
    # 刪除當前用戶的所有Session數(shù)據(jù)
    request.session.delete("session_key")
    request.session.delete()
    request.session.flush()
 
    request.session.set_expiry(value)
      * 如果value是個整數(shù),session會在些秒數(shù)后失效。
      * 如果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' # 使用的緩存別名(默認內(nèi)存緩存,也可以是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傳輸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. 使用

同上

文件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傳輸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. 使用

同上

緩存+數(shù)據(jù)庫Session

數(shù)據(jù)庫用于做持久化,緩存用于提高效率

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. 使用

同上

登錄狀態(tài)驗證

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Python matplotlib可視化繪圖詳解

    Python matplotlib可視化繪圖詳解

    這篇文章主要介紹了Python matplotlib繪圖可視化知識點整理(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-09-09
  • Python 3.6 性能測試框架Locust安裝及使用方法(詳解)

    Python 3.6 性能測試框架Locust安裝及使用方法(詳解)

    下面小編就為大家?guī)硪黄狿ython 3.6 性能測試框架Locust安裝及使用方法(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Python解析cyber record文件的示例詳解

    Python解析cyber record文件的示例詳解

    cyber record 是 Cyber RT 中用于錄制和回放數(shù)據(jù)的工具,本文將為大家展示一下如何使用Python進行解析cyber record文件,需要的可以參考下
    2025-02-02
  • 使用numpy實現(xiàn)topk函數(shù)操作(并排序)

    使用numpy實現(xiàn)topk函數(shù)操作(并排序)

    這篇文章主要介紹了使用numpy實現(xiàn)topk函數(shù)操作(并排序),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python連接Mysql進行增刪改查的示例代碼

    Python連接Mysql進行增刪改查的示例代碼

    這篇文章主要介紹了Python連接Mysql進行增刪改查的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • R語言屬性知識點總結(jié)及實例

    R語言屬性知識點總結(jié)及實例

    在本篇文章里小編給大家整理了一篇關于R語言屬性知識點總結(jié)及實例內(nèi)容,有興趣的朋友們可以學習下。
    2021-03-03
  • python?OpenCV圖像直方圖處理

    python?OpenCV圖像直方圖處理

    這篇文章主要介紹了python?OpenCV圖像直方圖處理,文章通過matplotlib畫一個直方圖展開詳情,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • 解決Python下imread,imwrite不支持中文的問題

    解決Python下imread,imwrite不支持中文的問題

    今天小編就為大家分享一篇解決Python下imread,imwrite不支持中文的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python Pandas高級功能之數(shù)據(jù)透視表和字符串操作

    python Pandas高級功能之數(shù)據(jù)透視表和字符串操作

    Pandas是Python中用于數(shù)據(jù)處理和分析的強大庫,這篇文章將深入探討Pandas庫的高級功能:數(shù)據(jù)透視表和字符串操作,需要的朋友可以參考下
    2023-07-07
  • Python實現(xiàn)用戶注冊登錄程序

    Python實現(xiàn)用戶注冊登錄程序

    這篇文章主要為大家詳細介紹了Python實現(xiàn)用戶注冊登錄程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02

最新評論

白河县| 炉霍县| 永胜县| 昌宁县| 江陵县| 漳州市| 丰顺县| 朝阳县| 边坝县| 华安县| 墨脱县| 四子王旗| 宣威市| 伊吾县| 汪清县| 松江区| 高邮市| 沁水县| 平潭县| 辽宁省| 凤庆县| 崇左市| 如皋市| 西充县| 东乌| 武城县| 佛教| 班戈县| 辛集市| 临泽县| 东平县| 崇文区| 资阳市| 昭通市| 马关县| 巴南区| 凉城县| 黄龙县| 称多县| 宝丰县| 泽州县|