日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python关闭浏览器删除session_Django操作session 的方法

發布時間:2023/12/13 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python关闭浏览器删除session_Django操作session 的方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

session是存放在服務端的,在django中使用session必須要先在數據庫中創建django_session表,session相關信息都要依賴此表

獲取session

request.session['status']

request.session.get('status')#一般用get,無此鍵返回None不報錯

設置session

#在使用session之前必須在數據庫創建相關的表(django_session)

#調用request.session首先會接收請求頭部的cookie是否有sessionid,進行表查詢對比

#如果有重新生成一個sessionid進行覆蓋更新記錄,并將隨機生成的sessionid添加到cookie返回前端

# 沒有則新建存進表中的session_key,同時將字典信息加密自動存進表中的session_data字段

request.session['status']=True? # 存在自動覆蓋

request.session.setdefault('k1',123) # 存在則不設置

刪除session

request.session.flush()#刪除服務端的session,刪除當前的會話數據并刪除會話的Cookie。

request.session.clear_expired()# 將所有Session失效日期小于當前日期的數據刪除,將過期的刪除

del request.session['k1']#django-session表里面同步刪除

request.session.delete()# 刪除當前會話的所有Session數據

更多session操作

# 所有 鍵、值、鍵值對

request.session.keys()

request.session.values()

request.session.items()

#獲取sessionid的值

session_key = request.session.session_key

#檢查會話session的key在數據庫中是否存在

request.session.exists("session_key") #session_key就是那個sessionid的值

# 設置會話Session和Cookie的超時時間

request.session.set_expiry(value)

* 如果value是個整數,session會在些秒數后失效。

* 如果value是個datatime或timedelta,session就會在這個時間后失效。

* 如果value是0,用戶關閉瀏覽器session就會失效。

* 如果value是None,session會依賴全局session失效策略。

Session詳細流程解析

Django中的Session配置

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

1. 數據庫Session

SESSION_ENGINE = 'django.contrib.sessions.backends.db' # 引擎(默認)

2. 緩存Session

SESSION_ENGINE = 'django.contrib.sessions.backends.cache' # 引擎

SESSION_CACHE_ALIAS = 'default' # 使用的緩存別名(默認內存緩存,也可以是memcache),此處別名依賴緩存的設置

3. 文件Session

SESSION_ENGINE = 'django.contrib.sessions.backends.file' # 引擎

SESSION_FILE_PATH = None # 緩存文件路徑,如果為None,則使用tempfile模塊獲取一個臨時地址tempfile.gettempdir()

4. 緩存+數據庫

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

5. 加密Cookie Session

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

其他公用設置項:

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,默認修改之后才保存(默認)

總結

到此這篇關于Django操作session 的方法的文章就介紹到這了,更多相關django操作session 內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

總結

以上是生活随笔為你收集整理的python关闭浏览器删除session_Django操作session 的方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。