Flask 訪問和修改 Sessions

2021-08-10 17:39 更新

0.8 新版功能.

有時(shí),在測試客戶端里訪問和修改 Sesstions 可能會(huì)非常有用。 通常有兩種方法實(shí)現(xiàn)這種需求。如果您僅僅希望確保一個(gè) Session 擁有某個(gè)特定的鍵,且此鍵的值是某個(gè)特定的值,那么您可以只 保存起上下文,并且訪問 flask.session:

with app.test_client() as c:
    rv = c.get('/')
    assert flask.session['foo'] == 42

但是這樣做并不能使您修改 Session 或在請求發(fā)出之前訪問 Session。 從 Flask 0.8 開始,我們提供一個(gè)叫做 “Session 事務(wù)” 的東西用于 模擬適當(dāng)?shù)恼{(diào)用,從而在測試客戶端的上下文中打開一個(gè) Session,并 用于修改。在事務(wù)的結(jié)尾,Session 將被恢復(fù)為原來的樣子。這些都 獨(dú)立于 Session 的后端使用:

with app.test_client() as c:
    with c.session_transaction() as sess:
        sess['a_key'] = 'a value'

    # once this is reached the session was stored

注意到,在此時(shí),您必須使用這個(gè) sess 對象而不是調(diào)用 flask.session 代理,而這個(gè)對象本身提供了同樣的接口。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號