目錄三、session的工作原理
四、如何操作cookie
五、案例
六、如何操作session
由於 http 協議是無狀態的,無法記錄使用者狀態,為了能夠記錄使用者狀態,就出現了 cookie 和 session (cookie 安全性不足才出現的 session)來識別並儲存使用者狀態
cookie就是儲存在客戶端瀏覽器上的鍵值對
cookie 雖然是寫在客戶端瀏覽器上的,但其其實是服務端設定的檢視cookie的方式瀏覽器可以選擇不服從命令 禁止寫 cookie (設定,禁用 cookie)
不讓寫 cookie 的話,所有要儲存登入狀態的頁面都不能登入成功
session 是儲存在服務端的鍵值對
cookie 雖然在一定程度上解決了 「保持狀態」 的需求,但是由於cookie 本身最大支援 4096 位元組,以及 cookie 本身儲存在客戶端,可能被攔截或竊取,因此就需要有一種新的東西,它能支援更多的位元組,並且他儲存在伺服器,有較高的安全性,然後就出現了 session 。
django 操作 cookie 要利用 httpresponse 物件(返回給客戶端瀏覽器的都必須是 httpresponse 物件)
目前httpresponse()和render()物件都是返回httprespose物件
#設定cookie利用的就是httpresponse物件
obj1.set_cookie('k1','v1')
#獲取cookie
request.cookies.get('k1')
#刪除cookie
obj1.delete_cookie("k1")
#設定超時時間
max_age=none, 超時時間
需求:做個登入驗證(登陸成功才能訪問幾個頁面)思考:
裝飾器怎麼用?放函式上面就好了
@login_auth
def home(request):
# 校驗使用者是否登入
# if request.cookies.get('name'):
# return httpresponse('我是主頁 只有登入了才能看')
# return redirect('/login/')
# 上面三行**是不引入裝飾器的原始方法
return httpresponse('我是主頁 只有登入了才能看')
當成乙個 字典 來操作就行了
request.session['key'] = value # 僅僅只會在記憶體產生乙個快取
1.django內部自動生成了隨機的字串
2.在django_session表中存入資料
session_key session_data date
隨機字串1 資料1 ...
隨機字串2 資料2 ...
隨機字串3 資料3 ...
3.將產生的隨機字串傳送給瀏覽器 讓瀏覽器儲存到cookie中
sessionid:隨機字串
request.session.get('key')
1.瀏覽器傳送cookie到django後端之後 django會自動獲取到cookie值
2.拿著隨機字串去django_session表中比對 是否有對應的資料
3.如果比對上了 就講隨機字串所對應的資料 取出賦值給request.session
如果對不上 那麼request.session就是個空
說明: django session表是針對瀏覽器的 不同的瀏覽器來 才會有不同的記錄
request.session.delete() # 只刪除服務端的session
request.session.flush() # 瀏覽器和服務端全部刪除
request.session.set_expiry(value多種配置)
數字0
不寫時間格式
mysql第六章 第六章 mysql日誌
第六章 mysql日誌 一 錯誤日誌 錯誤日誌的預設存放路徑是 mysql 存放資料的地方 hostname.err 1.修改錯誤日誌存放路徑 mysqld log error data mysql mysql.log 2.檢視配置命令 show variables like log error 3...
第六章 指標
1.多位元組資料的位址是在最左邊還是最右邊的位置,不同的機器有不同的規定,這也正是大端和小端的區別,位址也要遵從邊界對齊 2.高階語言的乙個特性就是通過名字而不是位址來訪問記憶體的位置,但是硬體仍然通過位址訪問記憶體位置 3.記憶體中的變數都是義序列的0或1的位,他們可以被解釋為整數或者其他,這取決...
第六章總結
6.1 使用滑鼠 6.1.1 滑鼠時間和滑鼠訊息 根據使用者操作滑鼠時滑鼠的位置,滑鼠訊息分為兩類 客戶區滑鼠訊息和非客戶區滑鼠訊息。1.客戶去滑鼠訊息 2.當滑鼠游標位於視窗的使用者區時,將生成客戶滑鼠訊息。滑鼠訊息和鍵盤訊息有所不同,windows 只將鍵盤有訊息傳送給具有輸入極點的視窗,但滑鼠...