11.會(huì)話保持

狀態(tài)保持:

  1. http協(xié)議是無狀態(tài)的:每次請(qǐng)求都是一次新的請(qǐng)求合愈,不會(huì)記得之前通信的狀態(tài)
  2. 客戶端與服務(wù)器端的一次通信,就是一次會(huì)話實(shí)現(xiàn)狀態(tài)保持的方式:在客戶端或服務(wù)器端存儲(chǔ)與會(huì)話有關(guān)的數(shù)據(jù)
  3. 存儲(chǔ)方式包括cookie益老、session寸莫,會(huì)話一般指session對(duì)象
  4. 使用cookie膘茎,所有數(shù)據(jù)存儲(chǔ)在客戶端,注意不要存儲(chǔ)敏感信息
  5. 使用sesison方式态坦,所有數(shù)據(jù)存儲(chǔ)在服務(wù)器端伞梯,在客戶端cookie中存儲(chǔ)session_id
  6. 狀態(tài)保持的目的是在一段時(shí)間內(nèi)跟蹤請(qǐng)求者的狀態(tài)谜诫,可以實(shí)現(xiàn)跨頁面訪問當(dāng)前請(qǐng)求者的數(shù)據(jù)
  • 注意:不同的請(qǐng)求者之間不會(huì)共享這個(gè)數(shù)據(jù)涮阔,與請(qǐng)求者一一對(duì)應(yīng)

Cookie保存用戶信息

  • views.py
class homeView(View):
    def get(self, request):
        # 獲取請(qǐng)求中的Cookie

        num = request.COOKIES.get('num')

        if num:
            num = int(num)+1
        else:
            num = 1

        # 構(gòu)造返回?cái)?shù)據(jù)
        response = render(request, 'home/index.html', locals())
        # cookie中設(shè)置num 返回給客戶端瀏覽器, 過期時(shí)間為10s
        response.set_cookie('num', num, max_age=10)
        return response
  • urls.py
urlpatterns = [
    path('home/', views.homeView.as_view(), name='home')
]
  • home.html
我是 第{{ num }} 次訪問
  • 展示


    image.png
  • 缺點(diǎn)掰邢,用戶客戶端可以修改


    image.png

Session保存用戶信息

  • 可以理解為 sessionid 是客戶端隨機(jī)生成的唯一的 key值辣之,保存在cookie中掰伸,
  • 服務(wù)器session中保存著很多鍵為 sessionid 值為userinfo的字典狮鸭,
  • 客戶端和服務(wù)器通過session_id交流
image.png
  • 啟用


    image.png
  • 方法
    啟用會(huì)話后,每個(gè)HttpRequest對(duì)象將具有一個(gè)session屬性惯退,它是一個(gè)類字典對(duì)象
- get(key, default=None):根據(jù)鍵獲取會(huì)話的值
- clear():清除所有會(huì)話
- flush():刪除當(dāng)前的會(huì)話數(shù)據(jù)并刪除會(huì)話的Cookie
- set_expiry(value):設(shè)置會(huì)話的超時(shí)時(shí)間
  - 如果沒有指定催跪,則兩個(gè)星期后過期
  - 如果value是一個(gè)整數(shù)夷野,會(huì)話將在values秒沒有活動(dòng)后過期
  - 若果value是一個(gè)imedelta對(duì)象悯搔,會(huì)話將在當(dāng)前時(shí)間加上這個(gè)指定的日期/時(shí)間過期
  - 如果value為0鳖孤,那么用戶會(huì)話的Cookie將在用戶的瀏覽器關(guān)閉時(shí)過期
  - 如果value為None,那么會(huì)話永不過期
  • settings.py 配置(可以不設(shè)置,保持默認(rèn))
# 是否關(guān)閉瀏覽器使得session過期平匈,默認(rèn)是False
SESSION_EXPIRE_AT_BROWSER_CLOSE = False

# 是否每次請(qǐng)求都保存session增炭,默認(rèn)修改之后才保存
SESSION_SAVE_EVERY_REQUEST = False

# session的cookie失效日期拧晕,默認(rèn)是2周
SESSION_COOKIE_AGE = 1209600
  • views.py
class homeView(View):
    def get(self, request):

        name = request.session.get('name')

        return render(request, 'home/index.html',locals())

class LoginView(View):

    def get(self,request):
        return render(request,'login/login.html')

    def post(self, request):
        username = request.POST.get('username','')
        password = request.POST.get('password','')
        if username == 'liuwei' and password == '123456':
            # 設(shè)置值
            request.session['name'] = username
            request.session.set_expiry(10)
            return redirect(reverse('index:home'))


class LogoutView(View):
    def get(self, request):

        request.session.flush()
        return redirect(reverse('index:home'))
  • urls.py
    path('home/', views.homeView.as_view(), name='home'),
    path('login/', views.LoginView.as_view(), name='login'),
    path('logout/', views.LogoutView.as_view(), name='logout'),
  • 展示


    image.png

    image.png

    image.png

算法加密

  • 加鹽,時(shí)間戳厂捞,等等
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末欲鹏,一起剝皮案震驚了整個(gè)濱河市赔嚎,隨后出現(xiàn)的幾起案子尤误,更是在濱河造成了極大的恐慌,老刑警劉巖软棺,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異揖盘,居然都是意外死亡兽狭,警方通過查閱死者的電腦和手機(jī)鹿蜀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門颠焦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伐庭,“玉大人圾另,你說我怎么就攤上這事集乔∑陆罚” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長梢睛。 經(jīng)常有香客問我绝葡,道長藏畅,這世上最難降的妖魔是什么愉阎? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任榜旦,我火速辦了婚禮溅呢,結(jié)果婚禮上咐旧,老公的妹妹穿的比我還像新娘铣墨。我一直安慰自己踏兜,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著骤肛,像睡著了一般腋颠。 火紅的嫁衣襯著肌膚如雪淑玫。 梳的紋絲不亂的頭發(fā)上絮蒿,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天佛寿,我揣著相機(jī)與錄音容客,去河邊找鬼蜡饵。 笑死验残,一個(gè)胖子當(dāng)著我的面吹牛您没,可吹牛的內(nèi)容都是我干的氨鹏。 我是一名探鬼主播仆抵,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼舔糖,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼金吗!你這毒婦竟也來了摇庙?” 一聲冷哼從身側(cè)響起宵呛,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎讽营,沒想到半個(gè)月后橱鹏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了综看。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖忠寻,靈堂內(nèi)的尸體忽然破棺而出锡溯,到底是詐尸還是另有隱情祭饭,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站胆建,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏凉驻。R本人自食惡果不足惜涝登,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一乱投、第九天 我趴在偏房一處隱蔽的房頂上張望篡腌。 院中可真熱鬧叛甫,春花似錦其监、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽遮斥。三九已至术吗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吝镣,已是汗流浹背末贾。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來泰國打工表蝙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留集索,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像中剩,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子妆棒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

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

  • 會(huì)話(Session)跟蹤是Web程序中常用的技術(shù)毅糟,用來跟蹤用戶的整個(gè)會(huì)話。常用的會(huì)話跟蹤技術(shù)是Cookie與Se...
    chinariver閱讀 5,617評(píng)論 1 49
  • 背景在HTTP協(xié)議的定義中迹辐,采用了一種機(jī)制來記錄客戶端和服務(wù)器端交互的信息,這種機(jī)制被稱為cookie甚侣,cooki...
    時(shí)芥藍(lán)閱讀 2,365評(píng)論 1 17
  • 會(huì)話(Session)跟蹤是Web程序中常用的技術(shù)明吩,用來跟蹤用戶的整個(gè)會(huì)話。常用的會(huì)話跟蹤技術(shù)是Cookie與Se...
    笨蛋小明閱讀 1,030評(píng)論 1 1
  • 一覺醒來殷费,又是新的一天了印荔,盡管昨晚發(fā)生了那么捉摸不透的事,我依舊睡得……用了六個(gè)鬧鐘才叫醒详羡。 刷牙洗臉仍律,換上海魂衫...
    三分鐘姑娘Holiday閱讀 306評(píng)論 0 1
  • 人的一生有很多遇見实柠,而與你的相遇水泉,卻是如此的美麗。 早餐過后窒盐,我們一行便朝著衡山奔去草则。漫天的飛雪,滿樹的瓊枝登钥,置身...
    笨笨熊李蓉閱讀 497評(píng)論 1 1