djnago seeeion
生活随笔
收集整理的這篇文章主要介紹了
djnago seeeion
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在用戶第一次登陸時去哪session_key會None
user.session_key = request.session.session_key user.save()使用create()來代貼save()原因:
如果request.session.session_key為None,則表示會話對象是全新的,尚未保存到數據庫中。調用request.session.save()應該填充該屬性。
SessionStore.create()用于創建新會話(即未從會話存儲加載的會話session_key=None)。
save()用于保存現有會話(即從會話存儲加載的會話)。
調用save()新會話也可能有效,但產生session_key與現有會話沖突的可能性很小。create() 調用save()和循環,直到session_key生成未使用的。
改為
這個功能是為了 使用session 實現單用戶登錄功能。通俗的說就是新用戶擠掉老用戶。需要一個狀態記錄用戶。其他方法大部分需要前端手寫功能攜帶一些數據。使用session就方便一些。
思路:
在用戶表后加一個字段(session_key)記錄用戶狀態。
當新用戶登錄時 會更新字段數據 , 拿著老的session_key去django_session表刪除舊session 老用戶的session 就從服務器刪掉了。當校驗session身份時就會攔截到。
session認證裝飾器
def auth(func):def wrap(request, *args, **kwargs):# 如果未登陸,跳轉到指定頁面ck = request.session.get("uid", None)if not ck:return JsonResponse({"code": 300, "msg": "登錄已過期", "data": {}})return func(request, *args, **kwargs)return wrap總結
以上是生活随笔為你收集整理的djnago seeeion的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初中数学抽象教学的案例_初中八年级数学上
- 下一篇: SyntaxError: Non-UTF