flask學習筆記3-flask上下文和請求鉤子

1. 請求上下文

1.1 request請求上下文

request請求體上下文在django和flask的視圖函數(shù)中是有區(qū)別的

django視圖函數(shù)中要填寫request請求體,每個客戶端的請求是很明確的

flask中的request是一個全局變量,每個client請求都是一個flask線程,多個請求的多個線程都可以使用全局的request。這是通過線程id去區(qū)分具體是哪一個client連接,每進來一個新的請求,flask會把新的請求信息帶上線程id 加入到全局的request中

1.2 session上下文

筆記中的session其實也是一種請求上下文


2. 應用上下文:current_app和g

current_app和g都屬于應用上下文對象

區(qū)別:

current_app:表示當前運行程序文件的程序?qū)嵗?,只要flask后臺程序不停止,都一直存在

g:處理單個請求時,用于臨時存儲的對象,每次請求都會重設(清空)這個變量,相當于單詞請求的全局變量。方便函數(shù)之間少傳遞參數(shù)


3. 請求鉤子

request hook是針對單個請求的生命周期而言的,通過裝飾器實現(xiàn)

@app.before_first_request()

@app.before_request()

@app.after_request(response)

@app.teardown_request(response) 工作在debug = False時生效

示例代碼一
接示例代碼一

request hook 默認會在頁面的所有視圖中都生效,作用于單次請求,如果只是應用到多個視圖的某一個或一些視圖上,需要在鉤子函數(shù)中做條件判斷:

示例代碼二
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 原文:Flask的Context(上下文)學習筆記作者:饅頭白啊白 上下文這個概念多見于文章中,是一句話中的語境,...
    氨基鈉閱讀 904評論 0 2
  • 上下文這個概念多見于文章中,是一句話中的語境,也就是語言環(huán)境。一句莫名其妙的話出現(xiàn)會讓人不理解什么意思,如果有語言...
    饅頭白啊白閱讀 31,739評論 6 66
  • 兩個核心依賴 falsk主要依賴兩個庫 —— Werkzeug 和 Jinja。 Jinja2 由于大多數(shù)Web程...
    SMEB_閱讀 733評論 0 3
  • 請求上下文 在flask 0.9版本之前,flask中只有“請求上下文”的概念。那什么是請求上下文呢? 我們先回憶...
    初幕閱讀 1,444評論 0 2
  • 庭院深深深幾許,楊柳堆煙,簾幕無重數(shù)。玉勒雕鞍游冶處,樓高不見章臺路。雨橫風狂三月暮,門掩黃昏,無計留春住。淚眼問...
    SlashBoyMr_wang閱讀 3,431評論 2 4

友情鏈接更多精彩內(nèi)容