django---session/redis/隔行換色

(一)引入session

SessionCookie是緊密相關(guān)的。 Session的使用要求用戶瀏覽器必須支持Cookie,如果瀏覽器不支持使用Cookie,或者設(shè)置為禁用Cookie,那么將不能使用Session。

Session信息對客戶來說,不同的用戶用不同的Session信息來記錄。當(dāng)用戶啟用Session時,ASP自動產(chǎn)生一個SessionID.在新會話開始時,服務(wù)器將SessionID當(dāng)做cookie存儲在用戶的瀏覽器中。

session相比較cookie來說比較安全

我的理解:如果你是今天登陸這個網(wǎng)站(前提是你已經(jīng)注冊過這個網(wǎng)站),

然后點(diǎn)擊登陸,登陸成功的話??這行代碼會自動生成一個cookie,并且為你設(shè)置一個對應(yīng)得session.id。此時當(dāng)你登陸成功的話就有兩個cookie,一個是你自己設(shè)置的,一個是系統(tǒng)自動生成的。

當(dāng)你再次登陸這個網(wǎng)站打開任何一個界面的時候,系統(tǒng)會自動匹配你的sessionid,

注意:自己設(shè)置的cookie?健名一定不要和sessionid重名,這樣第二次進(jìn)入系統(tǒng)的時候,內(nèi)部會匹配不到

(二)代碼

request.session['cueernt']=username ? ? ? ? ? ?-----引入session[健]=需要記錄的內(nèi)容

print('session:%s'%request.session.get('cueernt'))----在同一個app下的其他方法里打入這句話可以獲取用戶名

(三)判斷你的session?id?是否建構(gòu)成功(寫一個判斷)

def?test01(request):

????reet?=?request.session.get('cueernt')

????if?not?reet:

????????return?redirect('/user/login')

return?render(request,?'user/success.html')

(四)引入redis

1.與其他用戶狀態(tài)保存方案比較

一般開發(fā)中用戶狀態(tài)使用session或者cookie,兩種方式各種利弊。

Session:在InProc模式下容易丟失,并且引起并發(fā)問題。如果使用SQLServer或者SQLServer模式又消耗了性能

Cookie則容易將一些用戶信息暴露,加解密同樣也消耗了性能。

Redis采用這樣的方案解決了幾個問題,

1.Redis存取速度快。

2.用戶數(shù)據(jù)不容易丟失。

3.用戶多的情況下容易支持集群。

4.能夠查看在線用戶。

5.能夠?qū)崿F(xiàn)用戶一處登錄。(通過代碼實(shí)現(xiàn),后續(xù)介紹)

6.支持持久化。(當(dāng)然可能沒什么用)

7.相比直接在數(shù)據(jù)庫里尋找session.id要快

自己理解:因?yàn)槿绻@個網(wǎng)站在這一時刻有很大的瀏覽量,每個用戶都有屬于自己的session.id,如果服務(wù)器每次都在數(shù)據(jù)庫里面尋找的話會特別慢,所以直接加載到redis里面

(五)安裝redis步驟

設(shè)置redis

第一步:安裝pip?install?django-redis-sessions

第二步:配置settings.py文件

#redis緩存session

SESSION_ENGINE?=?'redis_sessions.session'

SESSION_REDIS_HOST?=?'192.168.12.18'------IP地址

SESSION_REDIS_PORT?=?6379

SESSION_REDIS_DB?=?0

SESSION_REDIS_PASSWORD?=?''----設(shè)置密碼

SESSION_REDIS_PREFIX?=?'session'

第三步:redis-cli ? ----進(jìn)入環(huán)境

如果不成功??輸入sudo?apt?install?redis-server

此時sessionID將存儲在redis里面


(六)隔行換色

?{% if forloop.counter|divisibleby:'2'%}style='bakegroud-color:'red';'{%endif%}

能被2整除的都變成紅色(用到了過濾器)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 背景在HTTP協(xié)議的定義中,采用了一種機(jī)制來記錄客戶端和服務(wù)器端交互的信息,這種機(jī)制被稱為cookie,cooki...
    時芥藍(lán)閱讀 2,480評論 1 17
  • 轉(zhuǎn)自 :http://blog.csdn.net/taoff/articles/1921009.aspx 一、術(shù)語...
    stone_yao閱讀 6,392評論 0 31
  • 此文知識來自于:《深入分析Java_Web技術(shù)》第十章現(xiàn)代session與cookie的應(yīng)用 本章概要:當(dāng)我們的一...
    李文文丶閱讀 1,585評論 0 4
  • 我們這個圈子真有意思。 一方面,前幾天騰訊市值超過5000億美金,大家嗨的不行,奔走相告。有誰知,這股指創(chuàng)富的過程...
    Will閱讀 1,601評論 1 12
  • 人總歸會死,所以生命才更美好,所以,等我的記憶回來后的第一個想法是,要把今天當(dāng)做最后一天過。如果今天是最后一天,現(xiàn)...
    懇切閱讀 183評論 0 0

友情鏈接更多精彩內(nèi)容