Python篇-Django之Session與Cookie

TZ:運(yùn)動(dòng)使人心情愉悅

一 : 科普一分鐘

Cookie 可以翻譯為“小甜品沦补,小餅干” 边涕,Cookie 在網(wǎng)絡(luò)系統(tǒng)中幾乎無(wú)處不在眶诈,當(dāng)我們?yōu)g覽以前訪問(wèn)過(guò)的網(wǎng)站時(shí)但金,網(wǎng)頁(yè)中可能會(huì)出現(xiàn) :你好 .xx韭山,Cookie 其實(shí)是客戶端記錄用戶行為的一個(gè)文件,形式通常是鍵值對(duì)的方式,大家可能有過(guò)這種經(jīng)歷,登錄網(wǎng)站有的瀏覽器會(huì)提示,是否保存Cookie,在這里與大家聊一聊在Django 框架下如何使用和操作小餅干.

cookie.png

二: Cookie以驗(yàn)證使用方法

  • Django下使用cookie進(jìn)行登錄驗(yàn)證
    登錄頁(yè)面對(duì)應(yīng)函數(shù)
def login(request):
    if request.method == 'GET':
        return render(request,'login2.html')

    if request.method == 'POST':
        u = request.POST.get('username')
        p = request.POST.get('pwd')
        dic = user_info.get(u)

        if not  dic:
            return  render(request,'login2.html')

        current_date = datetime.datetime.utcnow()

        current_date = current_date + datetime.timedelta(seconds=10)
        if dic['pwd'] == p:
            res = redirect('/myapp/index')
            # res.set_cookie('username',u,max_age=10)
#對(duì)cookie設(shè)置了超時(shí)時(shí)間和安全設(shè)置          
res.set_cookie('username',u,expires=current_date,httponly=True)
            # res.set_signed_cookie('username',u,salt="121221")
            return res
        else:
            return  render(request,'login2.html')

詳情頁(yè)面 如果cookie 驗(yàn)證通過(guò)則進(jìn)入Index頁(yè)面 否則刷新進(jìn)入登錄頁(yè)面

def auth(func):
    def inner(request,*args,**kwargs):
        v = request.COOKIES.get('username')
        if not v:
            return redirect('/myapp/login')
        return func(request,*args,**kwargs)

    return inner
@auth
def index(request):

    v = request.COOKIES.get('username')

    return render(request,'index2.html',{'current_user':v})

三 : Session以及驗(yàn)證使用方法

  • Session的意義
    對(duì)于Session 就是保存在后臺(tái)數(shù)據(jù)或者緩存中的一個(gè)鍵值對(duì),同樣的存儲(chǔ)著用戶信息,為了更好的保護(hù)用戶隱私,其實(shí)是對(duì)前端cookie的一個(gè)升級(jí)的保護(hù)措施.

  • Session 的原理
    當(dāng)?shù)卿洺晒?會(huì)向后臺(tái)數(shù)據(jù)庫(kù) 與 前端 Cookie同時(shí)發(fā)放一段隨機(jī)字符串,分別保存在后臺(tái)的session中,前端 寫(xiě)到用戶瀏覽器中,用戶下次登錄時(shí)候 拿著瀏覽器存著的sessionID當(dāng)做KEY去后臺(tái)數(shù)據(jù)庫(kù)中匹配進(jìn)行驗(yàn)證登錄即可拿到用戶相關(guān)信息,可以防止敏感信息直接暴露在瀏覽器上.

登錄頁(yè)邏輯

  • Django下用Session 進(jìn)行登錄驗(yàn)證
ef sessionLogin(request):
    if request.method == "GET":
        return render(request,'sessionLogin.html')

    elif request.method == "POST":
        user = request.POST.get('user')
        pwd = request.POST.get('pwd')
        if user == 'root' and pwd =="123":
            #生成隨機(jī)字符串
            #寫(xiě)到用戶瀏覽器
            #保存到session中
            #在隨機(jī)字符串對(duì)應(yīng)的字典中設(shè)置相關(guān)內(nèi)容...
            request.session['username'] = user
            request.session['is_login'] = True
            if request.POST.get('rmb',None) == '1':
                request.session.set_expiry(10)

            return redirect('/myapp/sessionindex')
        else:
            return render(request, 'sessionLogin.html')

詳情頁(yè)邏輯

def sessionindex(request):
    #獲取當(dāng)前用戶的隨機(jī)字符串
    #根據(jù)隨機(jī)字符串獲取對(duì)應(yīng)信息
    if request.session.get('is_login',None):
        return render(request,'sessionindex.html',{'username':request.session['username']})
    else:
        return HttpResponse('get out')

四 : 總結(jié)

綜上粗淺的介紹了了 Cookie與Session在Django下的基本使用,在實(shí)際開(kāi)發(fā)中我們還要在setting設(shè)置 Session存儲(chǔ)的引擎等細(xì)節(jié).

Session是在服務(wù)端保存的一個(gè)數(shù)據(jù)結(jié)構(gòu),用來(lái)跟蹤用戶的狀態(tài)冷溃,這個(gè)數(shù)據(jù)可以保存在集群钱磅、數(shù)據(jù)庫(kù)、文件中似枕;
Cookie是客戶端保存用戶信息的一種機(jī)制盖淡,用來(lái)記錄用戶的一些信息,也是實(shí)現(xiàn)Session的一種方式凿歼。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末褪迟,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子答憔,更是在濱河造成了極大的恐慌味赃,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件虐拓,死亡現(xiàn)場(chǎng)離奇詭異心俗,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)侯嘀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)另凌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)谱轨,“玉大人,你說(shuō)我怎么就攤上這事吠谢⊥镣” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵工坊,是天一觀的道長(zhǎng)献汗。 經(jīng)常有香客問(wèn)我,道長(zhǎng)王污,這世上最難降的妖魔是什么罢吃? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮昭齐,結(jié)果婚禮上尿招,老公的妹妹穿的比我還像新娘。我一直安慰自己阱驾,他們只是感情好就谜,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著里覆,像睡著了一般丧荐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上喧枷,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天虹统,我揣著相機(jī)與錄音,去河邊找鬼隧甚。 笑死车荔,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的呻逆。 我是一名探鬼主播夸赫,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼咖城!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起呼奢,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤宜雀,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后握础,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體辐董,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年禀综,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了简烘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苔严。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖孤澎,靈堂內(nèi)的尸體忽然破棺而出届氢,到底是詐尸還是另有隱情,我是刑警寧澤覆旭,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布退子,位于F島的核電站,受9級(jí)特大地震影響型将,放射性物質(zhì)發(fā)生泄漏寂祥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一七兜、第九天 我趴在偏房一處隱蔽的房頂上張望丸凭。 院中可真熱鬧,春花似錦腕铸、人聲如沸贮乳。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)向拆。三九已至,卻和暖如春酪耳,著一層夾襖步出監(jiān)牢的瞬間浓恳,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工碗暗, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留颈将,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓言疗,卻偏偏與公主長(zhǎng)得像晴圾,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子噪奄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • HTTP cookie(也稱為web cookie,網(wǎng)絡(luò)cookie,瀏覽器cookie或者簡(jiǎn)稱cookie)是網(wǎng)...
    留七七閱讀 17,957評(píng)論 2 71
  • 背景在HTTP協(xié)議的定義中死姚,采用了一種機(jī)制來(lái)記錄客戶端和服務(wù)器端交互的信息,這種機(jī)制被稱為cookie勤篮,cooki...
    時(shí)芥藍(lán)閱讀 2,364評(píng)論 1 17
  • 1都毒、insect昆蟲(chóng) 拆分:inse銀色+ct CT 聯(lián)想:“昆蟲(chóng)”體檢,拍出的是銀色的CT 2碰缔、angle角度 ...
    文魁大腦楊沛沛閱讀 452評(píng)論 0 0
  • 我看著我的日常浮游而過(guò)感情流了出來(lái)與我的記憶一起融解在畫(huà)布上如此濃烈账劲、冷靜而又千頭萬(wàn)緒、難以言表于是我拋棄了阻滯和...
    伊倆特閱讀 295評(píng)論 4 2
  • 人吶奶赔,也就這樣密任,你退讓一次蔫饰,就會(huì)有第二次第三次日杈,所以你是在逼著我不管不顧去做我自己想做的事忱辅,跟你說(shuō)你不理解我不強(qiáng)求...
    我的敏最靈動(dòng)閱讀 231評(píng)論 0 2