Flask 應用(程式)上下文和請求上下文

2021-08-13 09:40:57 字數 1331 閱讀 7041

「狗書」中有個地方講到應用上下文和請求上下文,博主初次看的時候很懵逼,其實我們要理解這兩個東西,最應該了解it行業的「上下文」是什麼意思,這樣再去理解應用上下文和請求上下文就容易得多了,只是對博主來說是這樣的。

上下文, 英文context,其完整意思應當是concatenate-text,聯絡文字,在it行業中譯為上下文其實並不確切也不容易理解,尤其是對於初學者,把它翻譯為「引用池」或者「引用區」更加恰當。

「, 你可以把它記為」引用池「!

為了避免大量可有可無的引數把檢視函式弄得一團糟,flask使用上下文臨時把某些物件變為全域性訪問。有了上下文,就可以寫出下面的檢視函式:

from flask import request

defindex

(); user_agent = request.headers.get

('user-agent')

return 'your

browser

is %s

p>' %user_agent

這裡的request屬於請求上下文,請求物件,封裝了客戶端發出的http請求中的內容,距離說明:假設前端使用ajax帶引數 data: 請求乙個後端介面,我們用python寫的後端介面就可以使用request這個「全域性變數」來獲取ajax的請求資料,如果介面是post,put型別,則可以使用

data = request.form
獲取,如果是get請求,則是可以使用

data=request.args
獲取,這裡不再詳細說明,轉接乙個部落格可以了解flask獲取request引數

這裡的「全域性變數」我們加引號是因為我們只是把他當做全域性變數來使用,但實際上並不是真正的全域性變數。比如,在多執行緒伺服器中,多個執行緒同時處理不同客戶端傳送的不同請求時,每個執行緒看到的request物件是不可能相同的。flask使用上下文讓特定的變數在乙個執行緒中全域性可以訪問,與此同時卻不會干擾其他執行緒。

在flask中有兩種上下文:應用(程式)上下文和請求上下文。

變數名上下文

說明應用上下文

當前啟用程式的程式例項

g應用上下文

處理請求時用作臨時儲存的物件。每次請求都會重設這個變數

request

請求上下文

請求物件,封裝了客戶端發出的http請求中的內容

session

請求上下文

使用者會話,用於儲存請求之間需要「記住」的☞的字典

Spring Cloud應用程式上下文服務

spring boot對於如何使用spring構建應用程式有乙個看法 例如它具有常規配置檔案的常規位置,以及用於常見管理和監視任務的端點。spring cloud建立在此之上,並新增了一些可能系統中所有元件將使用或偶爾需要的功能。引導應用程式上下文 乙個spring cloud應用程式通過建立乙個 ...

Spring Cloud應用程式上下文層次結構

bootstrap 如果在bootstrap上下文中找到任何propertysourcelocators,則可選compositepropertysource顯示為高優先順序,並且具有非空屬性。乙個例子是來自spring cloud config伺服器的屬性。有關如何自定義此屬性源的內容的說明,請參...

Flask 應用和請求上下文

from flask import request defindex user request.headers.get user agent return you browserid format user 標題flask應用上下文和請求上下文 變數名上下文說明 應用上下文 當前應用的應用例項 g應...