欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Flask 入門系列 Cookie與session的介紹

 更新時間:2021年11月25日 17:03:28   作者:tigeriaf  
這篇文章主要給大家分享的是 Flask 入門系列 Cookie與session的介紹,下面文字圍繞 Cookie與session的相關(guān)資料展開詳情,需要的朋友可以參考一下,希望對大家有所幫助

一、Cookie的使用

1、什么是Cookie

我們都知道,HTTP 協(xié)議是無狀態(tài)的,也就是說,在一次請求響應(yīng)結(jié)束后,服務(wù)端不會保留任何對方狀態(tài)的信息,對于某些需要保留的信息,可以通過 Cookie 技術(shù)來完成,通過在請求和響應(yīng)報文中添加 Cookie 數(shù)據(jù)來保存客戶端的狀態(tài)信息。

Web 服務(wù)器為了存儲某些數(shù)據(jù)(比如用戶信息) 而保存在瀏覽器上的小型文本數(shù)據(jù),瀏覽器會在一定時間內(nèi)保存它,在下次向該服務(wù)器發(fā)送請求時附帶這些數(shù)據(jù),Cookie 通常被用來進(jìn)行用戶會話管理(比如用戶的登錄狀態(tài)),保存用戶的一些信息。

2、在Flask中使用Cookie

Flask 中,如果想要在響應(yīng)中添加一個 cookie,可以使用 response 對象的set_cookie()方法。

set_ cookie()方法的參數(shù)如下:

  • keycookie 鍵名
  • valuecookie
  • max_agecookie 被保存的時間,單位:秒
  • expires:具體的過期時間
  • path:限制 cookie 可用的路徑,默認(rèn)為整個域名
  • domaincookie 可用的域名
  • secure:設(shè)置為 True,只有通過 HTTPS 才可使用
  • httponly:設(shè)置為True,禁止客戶端 js 獲取 cookie

具體使用如下:

@app.route('user/<name>')

def user(name):

    response = make_response('hello {}'.format(name), 200)

    response.set_cookie("name", name)

    return response

Flask 中,Cookie 可以通過 request 請求對象 cookies 屬性獲取。

@app.route('/hello')

def hello():

    user = request.args.get('name')

    if not user:

        user = request.cookies.get("name", 'default')

    return 'Hello {}!'.format(user)

二、session的使用

1、什么是session

session 指用戶會話,會話可以用來保存當(dāng)前請求的一些狀態(tài),以便于在請求之前共享信息。session是存儲在服務(wù)端的,通過唯一標(biāo)識區(qū)分用戶 session,即 session id,一般情況下,session id 是存在 Cookie 中的,服務(wù)端可以獲取 Cookie 中的 session id 來獲取用戶 session。

2、Flask中的session對象

我們了解了 Cookie 最重要的功能是用來保存客戶端用戶的狀態(tài)信息。但是存在這樣一個問題,Cookie 是保存在客戶端的,在瀏覽器中可以輕易的添加和修改 Cookie,而且如果把用戶的狀態(tài)信息以明文的方式存儲在 Cookie 里的話,那么就可以通過偽造 Cookie 信息來偽造別人的用戶信息,從而獲取一些權(quán)限。為了避免這個問題,我們要對敏感的 Cookie 內(nèi)容進(jìn)行加密。Flask 提供了 session 對象就是用來將 Cookie 數(shù)據(jù)加密存儲的。

3、在Flask中使用session

session 需要通過密鑰對數(shù)據(jù)進(jìn)行簽名以加密數(shù)據(jù),因此,需要先設(shè)置一個密鑰app.secret_key,這里設(shè)置的密鑰只是一個簡單示例,在生產(chǎn)環(huán)境中,必須要隨機生成的密鑰,保證秘鑰的復(fù)雜度度和隨機性,才更安全。

# 設(shè)置密鑰

app.secret_key = 'qwertyuiop'

@app.route('/user', methods=['POST', 'GET'])

def user():

    if request.method == 'POST':

        user = request.form['user_name']

        session['user_name'] = request.form['user_name']

        return 'Hello {}!'.format(user)

    else:

        if 'user_name' in session:

            return 'Hello {}!'.format(session["user_name"])

session 對象的使用就跟字典一樣,如上,用戶使用POST請求登錄后,在 session 中保存用戶名,下次再使用GET請求時,不傳遞任何信息,也可以在 session 中獲取該用戶的信息。

想要清除 session 指定信息的話,例如用戶名,可以使用 session.pop("user_name", None),清除全部的話可以使用session.clear()。

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

相關(guān)文章

  • Python標(biāo)準(zhǔn)庫re的使用舉例(正則化匹配)

    Python標(biāo)準(zhǔn)庫re的使用舉例(正則化匹配)

    正則表達(dá)式re是內(nèi)置函數(shù),通過一定的匹配規(guī)則獲取指定的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Python標(biāo)準(zhǔn)庫re的使用舉例,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • Python importlib模塊重載使用方法詳解

    Python importlib模塊重載使用方法詳解

    這篇文章主要介紹了Python importlib模塊重載使用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • pandas.read_csv參數(shù)詳解(小結(jié))

    pandas.read_csv參數(shù)詳解(小結(jié))

    這篇文章主要介紹了pandas.read_csv參數(shù)詳解(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • pycharm中導(dǎo)入不了torch包的解決方案

    pycharm中導(dǎo)入不了torch包的解決方案

    這篇文章主要介紹了pycharm中導(dǎo)入不了torch包的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python?tuple方法和string常量介紹

    Python?tuple方法和string常量介紹

    這篇文章主要介紹了Python?tuple方法和string常量,文章基于python的相關(guān)資料展開詳細(xì)內(nèi)容,對初學(xué)python的通知有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • Python3內(nèi)置模塊之json編解碼方法小結(jié)【推薦】

    Python3內(nèi)置模塊之json編解碼方法小結(jié)【推薦】

    這篇文章主要介紹了Python3內(nèi)置模塊之json編解碼方法小結(jié),本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • 抵御代碼復(fù)雜性使python函數(shù)更加Pythonic技巧示例詳解

    抵御代碼復(fù)雜性使python函數(shù)更加Pythonic技巧示例詳解

    這篇文章主要介紹了抵御代碼復(fù)雜性使python函數(shù)更加Pythonic技巧示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • python內(nèi)建類型與標(biāo)準(zhǔn)類型

    python內(nèi)建類型與標(biāo)準(zhǔn)類型

    這篇文章主要介紹了python內(nèi)建類型與標(biāo)準(zhǔn)類型,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • opencv用VS2013調(diào)試時用Image Watch插件查看圖片

    opencv用VS2013調(diào)試時用Image Watch插件查看圖片

    本文主要介紹了opencv用VS2013調(diào)試時用Image Watch插件查看圖片,直接以圖片形式可視化了opencv中的Mat變量。感興趣的可以了解下
    2021-07-07
  • 簡單學(xué)習(xí)Python time模塊

    簡單學(xué)習(xí)Python time模塊

    這篇文章主要和大家一起簡單學(xué)習(xí)一下Python time模塊,Python time模塊提供了一些用于管理時間和日期的C庫函數(shù),對time模塊感興趣的小伙伴們可以參考一下
    2016-04-04

最新評論