2 回答

TA貢獻1875條經(jīng)驗 獲得超5個贊
利用cookie驗證用戶是否已經(jīng)登錄:
?View Code
?
什么是session及session的工作原理
session又名會話,其功能與應(yīng)用場景與cookie類似,用來存儲少量的數(shù)據(jù)或信息。但由于數(shù)據(jù)存儲在服務(wù)器上,而不是客戶端上,所以比cookie更安全。
?
Session工作的流程如下:
客戶端向服務(wù)器發(fā)送請求時,看本地是否有cookie文件。如果有,就在HTTP的請求頭(Request Headers)中,包含一行cookie信息。
服務(wù)器接收到請求后,根據(jù)cookie信息,得到sessionId,根據(jù)sessionId找到對應(yīng)的session,用這個session就能判斷出用戶是否登錄等等。
?
使用Session的好處在于,即使用戶關(guān)閉了瀏覽器,session仍將保持到會話過期。
?
django中用session驗證用戶登錄狀態(tài)
?View Code
?下面是通過session控制不讓用戶連續(xù)評論兩次的例子。實際應(yīng)用中我們還可以通過session來控制用戶登錄時間,單位時間內(nèi)連續(xù)輸錯密碼次數(shù)等等。
?View Code

TA貢獻1799條經(jīng)驗 獲得超9個贊
模板中可以直接使用request對象的,比如request.user。如果不能的話需要settings中進行配置TEMPLATES的OPTIONS.context_processors增加django.template.context_processors.request:TEMPLATES=[{'BACKEND':'django.template.backends.django.DjangoTemplates','DIRS':[os.path.join(DIRNAME,"templates")],'APP_DIRS':True,'OPTIONS':{'debug':DEBUG,'context_processors':['django.template.context_processors.request',],},},]
添加回答
舉報