亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Flask中Cookie和Session理解與作用介紹

 更新時(shí)間:2022年10月13日 10:37:44   作者:Ywx_csdn  
Flask是一個(gè)使用 Python 編寫(xiě)的輕量級(jí) Web 應(yīng)用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎則使用 Jinja2 。Flask使用 BSD 授權(quán)。Flask也被稱(chēng)為 “microframework” ,因?yàn)樗褂煤?jiǎn)單的核心,用 extension 增加其他功能,F(xiàn)lask中Cookie和Session有什么區(qū)別呢

前序

1、cookie介紹

Cookie是一段不超過(guò)4KB的小型文本數(shù)據(jù),保存在客戶(hù)端瀏覽器中,由一個(gè)名稱(chēng)(Name)、一個(gè)值(Value)和其它幾個(gè)用于控制Cookie有效期、安全性、使用范圍的可選屬性組成。其中 :

(1) Name/Value:設(shè)置Cookie的名稱(chēng)及相對(duì)應(yīng)的值,對(duì)于認(rèn)證Cookie,Value值包括Web服務(wù)器所提供的訪(fǎng)問(wèn)令牌。

(2) Expires屬性:設(shè)置Cookie的生存期。有兩種存儲(chǔ)類(lèi)型的Cookie:會(huì)話(huà)性與持久性。Expires屬性缺省時(shí),為會(huì)話(huà)性Cookie,僅保存在客戶(hù)端內(nèi)存中,并在用戶(hù)關(guān)閉瀏覽器時(shí)失效;持久性Cookie會(huì)保存在用戶(hù)的硬盤(pán)中,直至生存期到或用戶(hù)直接在網(wǎng)頁(yè)中單擊“注銷(xiāo)”等按鈕結(jié)束會(huì)話(huà)時(shí)才會(huì)失效 。

(3) Path屬性:定義了Web站點(diǎn)上可以訪(fǎng)問(wèn)該Cookie的目錄 。

(4) Domain屬性:指定了可以訪(fǎng)問(wèn)該 Cookie 的 Web 站點(diǎn)或域。

2、session介紹

Session:與cookie功能效果相同。Session與Cookie的區(qū)別在于Session是記錄在服務(wù)端的,而Cookie是記錄在客戶(hù)端的。

當(dāng)訪(fǎng)問(wèn)服務(wù)器否個(gè)網(wǎng)頁(yè)的時(shí)候,會(huì)在服務(wù)器端的內(nèi)存里開(kāi)辟一塊內(nèi)存,這塊內(nèi)存就叫做session,而這個(gè)內(nèi)存是跟瀏覽器關(guān)聯(lián)在一起的。這個(gè)瀏覽器指的是瀏覽器窗口,或者是瀏覽器的子窗口,意思就是,只允許當(dāng)前這個(gè)session對(duì)應(yīng)的瀏覽器訪(fǎng)問(wèn),就算是在同一個(gè)機(jī)器上新啟的瀏覽器也是無(wú)法訪(fǎng)問(wèn)的。而另外一個(gè)瀏覽器也需要記錄session的話(huà),就會(huì)再啟一個(gè)屬于自己的session。

一、cookie學(xué)習(xí)

1、設(shè)置cookie

  • 在服務(wù)器設(shè)置cookie需要導(dǎo)入make_response包
  • response=make_response(‘hello world’) 括號(hào)這里傳入的值是在客戶(hù)端響應(yīng)的內(nèi)容
  • response.set_cookie(‘username’,‘mashibing’,max_age=3600) 第一個(gè)值是cookie名稱(chēng),第二個(gè)值cookie內(nèi)容,第三個(gè)值設(shè)置cookie的有效時(shí)間
  • 這個(gè)有效時(shí)間在服務(wù)器沒(méi)有關(guān)閉的狀態(tài)下,有效時(shí)間內(nèi),即使你關(guān)閉了客戶(hù)端(瀏覽器),再次打開(kāi)客戶(hù)端(瀏覽器)仍能訪(fǎng)問(wèn)到。
from flask import *
app=Flask(__name__)
#設(shè)置cookie以及有效性期
@app.route('/cookie')
def set_cookiei():
    response=make_response('hello world')
    response.set_cookie('username','mashibing',max_age=3600)
    return response
#讀取
@app.route('/get_cookie')
def get_cookie():
    resp=request.cookies.get('username')
    return resp
if __name__ == '__main__':
    app.run()

2、客戶(hù)端(瀏覽器)

二、session學(xué)習(xí)

1、設(shè)置SECRET_KEY

  • 這里SECRET_KEY的值是可以隨機(jī)設(shè)置,可以使用os.urandom(24) 隨機(jī)生成24位字符
  • 此值 [ SECRET_KEY 設(shè)置]是保護(hù)簽名數(shù)據(jù)的關(guān)鍵 - 保持此安全至關(guān)重要,否則攻擊者可以使用它來(lái)生成自己的簽名值。
  • 設(shè)置SECRET_KEY 配合加密算法生成sessionID
  • PERMANENT_SESSION_LIFETIME=timedelta(minutes=30) 設(shè)置該sessionID在服務(wù)器存儲(chǔ)的時(shí)間,在有效時(shí)間內(nèi)客戶(hù)端(瀏覽器)關(guān)掉后再次重新訪(fǎng)問(wèn)時(shí),會(huì)對(duì)其session ID進(jìn)行校驗(yàn),若是之前保存在服務(wù)器的session ID對(duì)應(yīng),則可以拿到之前session值。
class Df(object):
    SECRET_KEY=os.urandom(24)
    PERMANENT_SESSION_LIFETIME=timedelta(minutes=30)

2、設(shè)置session

  • 這里設(shè)置session值在客戶(hù)端是看不到的,相對(duì)安全,除非服務(wù)器崩了。
  • 設(shè)置的session會(huì)保存在服務(wù)器。
  • session.permanent=True #這行代碼也要寫(xiě)不然前面定義的時(shí)間失效。
  • 設(shè)置session是以鍵值對(duì)的形式。
@app.route('/test1')
def test1():
    session.permanent=True  #這行代碼也要寫(xiě)不然前面定義的時(shí)間失效
    #設(shè)置session
    session['un']='ywx'
    session['pwd']='123456'
    return 'hello ywx'

3、獲取session值

通過(guò)session.get() 獲取定義的值

#讀取session
@app.route('/test2')
def test2():
    un=session.get('un')
    pwd=session.get('pwd')
    print(un,pwd)
    return '獲取session的值'

4、整體代碼展示

from flask import *
import os
from datetime import timedelta
app=Flask(__name__)
#設(shè)置SECRET_KEY
class Df(object):
    SECRET_KEY=os.urandom(24)
    PERMANENT_SESSION_LIFETIME=timedelta(minutes=30)
#導(dǎo)進(jìn)來(lái)參數(shù)
app.config.from_object(Df)
@app.route('/test1')
def test1():
    session.permanent=True  #這行代碼也要寫(xiě)不然前面定義的時(shí)間失效
    #設(shè)置session
    session['un']='ywx'
    session['pwd']='123456'
    return 'hello ywx'
#讀取session
@app.route('/test2')
def test2():
    un=session.get('un')
    pwd=session.get('pwd')
    print(un,pwd)
    return '獲取session的值'
if __name__ == '__main__':
    app.run()

5、客戶(hù)端(瀏覽器)展示

到此這篇關(guān)于Flask中Cookie和Session理解與作用介紹的文章就介紹到這了,更多相關(guān)Flask Cookie Session內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python?count()函數(shù)用法詳解

    Python?count()函數(shù)用法詳解

    這篇文章主要給大家介紹了關(guān)于Python?count()函數(shù)用法的相關(guān)資料,Python?count()方法用于統(tǒng)計(jì)字符串里某個(gè)字符出現(xiàn)的次數(shù),可選參數(shù)為在字符串搜索的開(kāi)始與結(jié)束位置,需要的朋友可以參考下
    2024-02-02
  • 詳解python運(yùn)行三種方式

    詳解python運(yùn)行三種方式

    這篇文章主要介紹了python運(yùn)行三種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • python多核處理器算力浪費(fèi)問(wèn)題解決

    python多核處理器算力浪費(fèi)問(wèn)題解決

    這篇文章主要為大家介紹了python多核處理器算力浪費(fèi)現(xiàn)象的處理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 在類(lèi)Unix系統(tǒng)上開(kāi)始Python3編程入門(mén)

    在類(lèi)Unix系統(tǒng)上開(kāi)始Python3編程入門(mén)

    這篇文章主要介紹了在類(lèi)Unix系統(tǒng)上開(kāi)始Python3編程入門(mén),講解了最基礎(chǔ)最直觀的利用Print函數(shù)進(jìn)行各種輸出的方法,需要的朋友可以參考下
    2015-08-08
  • Keras之fit_generator與train_on_batch用法

    Keras之fit_generator與train_on_batch用法

    這篇文章主要介紹了Keras之fit_generator與train_on_batch用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • Python2.x利用commands模塊執(zhí)行Linux shell命令

    Python2.x利用commands模塊執(zhí)行Linux shell命令

    這篇文章主要介紹了Python2.x利用commands模塊執(zhí)行Linux shell命令 的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • python中幾種自動(dòng)微分庫(kù)解析

    python中幾種自動(dòng)微分庫(kù)解析

    這篇文章主要介紹了python中幾種自動(dòng)微分庫(kù)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 安裝多個(gè)版本的TensorFlow的方法步驟

    安裝多個(gè)版本的TensorFlow的方法步驟

    這篇文章主要介紹了安裝多個(gè)版本的TensorFlow的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python實(shí)現(xiàn)帶參數(shù)的用戶(hù)驗(yàn)證功能裝飾器示例

    Python實(shí)現(xiàn)帶參數(shù)的用戶(hù)驗(yàn)證功能裝飾器示例

    這篇文章主要介紹了Python實(shí)現(xiàn)帶參數(shù)的用戶(hù)驗(yàn)證功能裝飾器,結(jié)合實(shí)例形式分析了Python用戶(hù)驗(yàn)證裝飾器具體定義及使用技巧,需要的朋友可以參考下
    2018-12-12
  • python使用mailbox打印電子郵件的方法

    python使用mailbox打印電子郵件的方法

    這篇文章主要介紹了python使用mailbox打印電子郵件的方法,涉及Python打印電子郵件的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04

最新評(píng)論