flask中的程式和請求上下文

2022-03-14 10:22:22 字數 1520 閱讀 4755

一次完整的網路請求流程類似於一次網購流程:

一,客戶端傳送一次請求,假如請求資訊是」一瓶500ml可樂「,flask中請求物件request收到這個資訊(from flask import request)。

二,flask收到請求資訊,交給對應的檢視函式,檢視函式去資料庫取」一瓶500ml可樂「

三,檢視函式將「一瓶500ml可樂」,交給response, response按照網路協議,返回給客戶端。流程結束。

在第一步中,要想讓檢視函式能知道每次請求的內容是什麼,乙個方式是將請求作為引數傳給檢視函式。不過這會導致每個檢視函式都會增加乙個引數。除了訪問請求物件,還要訪問其他物件,引數會越來越多,檢視函式會很混亂。flask使用上下文臨時變數,讓請求物件變成全域性變數,全域性可訪問。這樣就不用每個檢視函式都帶乙個必須的請求引數了。

flask有四個常用的上下文全域性變數:

變數名上下文

說明程式上下文

g程式上下文

處理請求時用作臨時儲存的物件

request

請求上下文

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

session

請求上下文

使用者會話,用於儲存請求之間需要「記住」的值得字典。比如使用者名稱,賬號

舉例:

請求上下文request:

from flask import

request"/

")defindex():

user_agent=request.headers.get("

user-agent")

return

"your browser is %s

"% user_agent

請求上下文 session:

from flask import

request,session"/

")defindex():

user_agent=request.headers.get("

user-agent")

user_name=session.get("

user_info

").get("

loginname")

return

"your browser is %s

"% user_agent

from flask import"/

")defindex():

user_agent=request.headers.get("

user-agent")

user_name=session.get("

user_info

").get("

loginname")

"get user.name")

#js_address")

return

"your browser is %s

"% user_agent

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

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

Flask 中請求上下文和應用上下文的區別和作用?

兩者作用 請求上下文 request context flask從客戶端收到請求時,要讓檢視函式能訪問一些物件,這樣才能處理請求。請求物件是一 個很好的例子,它封裝了客戶端傳送的http 請求。要想讓檢視函式能夠訪問請求物件,乙個顯而易見的方式是將其作為引數傳入檢視函式,不過 這會導致程式中的每個檢...

Flask 應用和請求上下文

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