最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前序

1、cookie介紹

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

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

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

(3) Path屬性:定義了Web站點上可以訪問該Cookie的目錄 。

(4) Domain屬性:指定了可以訪問該 Cookie 的 Web 站點或域。

2、session介紹

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

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

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

1、設(shè)置cookie

  • 在服務(wù)器設(shè)置cookie需要導(dǎo)入make_response包
  • response=make_response(‘hello world’) 括號這里傳入的值是在客戶端響應(yīng)的內(nèi)容
  • response.set_cookie(‘username’,‘mashibing’,max_age=3600) 第一個值是cookie名稱,第二個值cookie內(nèi)容,第三個值設(shè)置cookie的有效時間
  • 這個有效時間在服務(wù)器沒有關(guān)閉的狀態(tài)下,有效時間內(nèi),即使你關(guā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、客戶端(瀏覽器)

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

1、設(shè)置SECRET_KEY

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

2、設(shè)置session

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

3、獲取session值

通過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)進來參數(shù)
app.config.from_object(Df)
@app.route('/test1')
def test1():
    session.permanent=True  #這行代碼也要寫不然前面定義的時間失效
    #設(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、客戶端(瀏覽器)展示

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

相關(guān)文章

  • python刪除列表元素的三種方法(remove,pop,del)

    python刪除列表元素的三種方法(remove,pop,del)

    這篇文章主要介紹了python刪除列表元素的三種方法(remove,pop,del),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python實現(xiàn)b站直播自動發(fā)送彈幕功能

    python實現(xiàn)b站直播自動發(fā)送彈幕功能

    這篇文章主要介紹了python如何實現(xiàn)b站直播自動發(fā)送彈幕,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-02-02
  • Pytest框架之fixture詳解(三)

    Pytest框架之fixture詳解(三)

    本文詳細講解了Pytest框架之fixture,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • python 定時器每天就執(zhí)行一次的實現(xiàn)代碼

    python 定時器每天就執(zhí)行一次的實現(xiàn)代碼

    這篇文章主要介紹了python 定時器每天就執(zhí)行一次的實現(xiàn)代碼,代碼簡單易懂非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • python中requests模塊的使用方法

    python中requests模塊的使用方法

    這篇文章主要介紹了python中requests模塊的使用方法,實例分析了requests模塊的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • Python常見加密模塊用法分析【MD5,sha,crypt模塊】

    Python常見加密模塊用法分析【MD5,sha,crypt模塊】

    這篇文章主要介紹了Python常見加密模塊用法,結(jié)合實例形式較為詳細的分析了MD5,sha與crypt模塊加密的相關(guān)實現(xiàn)方法與操作技巧,需要的朋友可以參考下
    2017-05-05
  • python計算最小優(yōu)先級隊列代碼分享

    python計算最小優(yōu)先級隊列代碼分享

    python計算最小優(yōu)先級隊列代碼分享,大家參考使用吧
    2013-12-12
  • pandas調(diào)整列的順序以及添加列的實現(xiàn)

    pandas調(diào)整列的順序以及添加列的實現(xiàn)

    這篇文章主要介紹了pandas調(diào)整列的順序以及添加列的實現(xiàn)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 通過Python收集匯聚MySQL 表信息的實例詳解

    通過Python收集匯聚MySQL 表信息的實例詳解

    這篇文章主要介紹了通過Python收集匯聚MySQL 表信息的實例代碼,核心代碼是創(chuàng)建保存數(shù)據(jù)的腳本,收集的功能腳本,代碼簡單明了,需要的朋友可以參考下
    2021-10-10
  • 淺析Python中的元編程

    淺析Python中的元編程

    Python元編程是指在運行時對Python代碼進行操作的技術(shù),它可以動態(tài)地生成、修改和執(zhí)行代碼,從而實現(xiàn)一些高級的編程技巧,本文就來和大家詳細聊聊吧
    2023-03-03

最新評論

龙山县| 运城市| 固镇县| 虞城县| 南宁市| 丰台区| 靖江市| 文昌市| 南川市| 舞钢市| 九龙县| 西畴县| 禄丰县| 汉阴县| 黄平县| 渝北区| 咸丰县| 泸州市| 临漳县| 北川| 化隆| 永宁县| 九台市| 高阳县| 永吉县| 峨眉山市| 叶城县| 峨山| 谢通门县| 龙口市| 松阳县| 乳源| 阿图什市| 扶绥县| 当涂县| 札达县| 永和县| 普兰县| 朝阳县| 同仁县| 濉溪县|