Django中的session常見配置
Django - session
- request.session
- session 適合存放 和使用者相關的資料
- session 存放的資料必須能被 json 序列化
- session 是一個類似於字典的容器
- session 的預設存活時間預設是2周
Session 的工作原理
當使用者使用 session的時候, 伺服器 會 從 瀏覽器的 Cookie 中查詢一個 cookie 的 name = sessionid
如果 能夠找到 對應的 cookie , 則獲取 sessionid 對應的 value, 通過 value 在伺服器獲取 session
如果 沒有找到對應的 cookie , 伺服器會建立一個新的 session物件,並將 session物件的 ID 作為 value,
將 sessionid 作為 name, 寫入到 瀏覽器的 cookie 中
session 常見的配置
# 設定瀏覽器cookie 對應的 key
SESSION_COOKIE_NAME = 'sessionid'
# 設定session的預設存活時間
SESSION_COOKIE_AGE = 60 * 60 * 24 * 7 * 2
# 設定從專案根下獲取 Cookie
SESSION_COOKIE_PATH = "/"
# 設定 session是否隨瀏覽器的關閉而消亡
SESSION_EXPIRE_AT_BROWSER_CLOSE= False
# 設定 session資料的序列化器類
SESSION_SERIALIZER = django.contrib.sessions.serializers.JSONSerializer
session 中常見的方法
- session 儲存
session[key] = val
session.setdefault(key, val)
- session 消亡
session.flush()
- 設定session存活時間
session.set_expiry(val)
val 如果是一個數字,則代表 剩餘多少秒消亡
val 是一個日期,則到日期時間點 消亡
- 清除過期的 session
session.clear_expired()
session 相關的表 django-session
session_key : session的ID
session_data : session序列化的資料
expire_data : session的過期時間
django 使用者登入
-
authenticate(request, username, password) : 會驗證使用者名稱、密碼,如果正確,返回 user物件
-
login(request, user) : user 就是 authenticate 返回的認證後的 user 物件
-
logout(request) : 退出登入
判斷使用者是否登入
request.user.is_anonymous 判斷當前使用者是否是匿名使用者
相關文章
- Python 中的 web 常見框架(Django 專案1)PythonWeb框架Django
- docker常見配置Docker
- Nginx常見配置Nginx
- django 中 mysql 的 charset 配置DjangoMySql
- Django Cookie與SessionDjangoCookieSession
- django | 常見 SQL 及其對應的 ORM 寫法DjangoSQLORM
- keepalived 1.3.5常見配置以及常見問題解決
- cookie與session的區別以及在Django中的實現CookieSessionDjango
- Python中的常見方法Python
- MySQL常見的配置引數概覽MySql
- Django框架之Cookie和SessionDjango框架CookieSession
- ubuntu中Django相關配置UbuntuDjango
- laravel session 與 php session配置LaravelSessionPHP
- Flutter配置環境常見問題Flutter
- java中list的常見問題。Java
- java集合中的常見考點Java
- 秒殺中的常見問題
- wsgi模組在Django中配置Django
- 在Linux中,什麼是配置管理,並且列出常見的配置管理工具。Linux
- Django裡URL配置中name引數的作用Django
- Hive學習之常見屬性配置Hive
- ODBC 常見資料來源配置整理
- SpringCloud之Eureka的常見問題及配置優化SpringGCCloud優化
- Django基礎六之cookie和sessionDjangoCookieSession
- 配置session——快取Session快取
- 在滲透中curl的常見用法
- css中的常見佈局面試題CSS面試題
- MySQL中幾種常見的日誌MySql
- RESTful設計中的常見疑問REST
- Django(37)配置django日誌Django
- Django(5)django配置資訊Django
- Django Mysql SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTEDDjangoMySqlSessionMIT
- 在node中的mongodb及mongoose常見用法MongoDB
- 在NodeJS中操作檔案常見的APINodeJSAPI
- JavaScript中的bind方法及其常見應用JavaScript
- 開發中hive常見的調優策略Hive
- Java 中12個常見的語法糖Java
- 配置session——資料庫Session資料庫