Flask框架 03 請求與響應

2021-08-27 16:24:03 字數 2591 閱讀 6799

服務端在接收到客戶端的請求後,會自動建立request物件

由flask框架建立,requesy物件不可修改

屬性:base_url:去掉get引數的url

host_url:只有主機和埠號的url

path:路由中的路徑

method:請求方法

args:get請求引數

form:post請求引數

files:檔案上傳

headers:請求頭

cookies:請求中的cookie

1.1 args–>get請求引數包裝

a)args是get請求引數的包裝,args是乙個immutablemultidict物件,類字典結構物件

b)資料儲存也是key-value

1.2 form–>post請求引數包裝
a)form是post請求引數的包裝,args是乙個immutablemultidict物件,類字典結構物件

b)資料儲存也是key-value

重點:immutablemultidict是類似字典的資料結構,但是與字典的區別是,可以存在相同的鍵。

在immutablemultidict中獲取資料的方式,dict[『key』]或者dict.get(『key』)或者dict.getlist(『key』)

response是由開發者自己建立的

建立方法:

from flask import make_response

make_response建立乙個響應,是乙個真正的response物件

狀態碼:

格式:make_reponse(data,code),其中data是返回的資料內容,code是狀態碼

a)直接將內容當做make_response的第乙個引數,第二個引數直接寫返回的狀態碼

b)直接在render後加返回的狀態碼

例子1:定義乙個獲取get請求的request的方法,並將返回成功的請求的狀態碼修改為200

@blue.route('/getrequest/', methods=['get'])

defget_request

(): print(request)

return

'獲取request', 200

例子2:返回response響應,並新增返回結果的狀態碼500

@blue.route('/getresponse/')

defget_response

(): response = make_response('', 500)

return response

或者:

@blue.route('/getresponse/', methods=['get'])

defget_user_response

(): login_html = render_template('login.html')

res = make_response(login_html, 200)

return res

語法:

url_for('藍圖定義的名稱.方法名')

例子1:

定義跳轉方法,跳轉到get_response的方法上

@blue.route('/getredirect/')

defget_redirect

():return redirect('getresponse')

例子2:

使用url_for反向解析

from flask import redirect, url_for

@blue.route('/getredirect/')

defget_redirect

():return redirect(url_for('first.get_response'))

自動丟擲異常:abort(狀態碼)

捕獲異常處理:errorhandler(狀態碼),定義的函式中要包含乙個引數,用於接收異常資訊

4.1 定義終止程式

@blue.route('/make_abort/')

defget_abort

(): abort(400)

return

'終止'

4.2 捕獲定義的異常
@blue.errorhandler(400)

defhandler

(exception):

return

'捕獲到異常資訊:%s' % exception

Flask 請求 響應

map get,head,options index static get,head,options static user get,head,options user url 對映中head options get是請求方法,由路由進行處理。flask為每個路由都指定了請求方法,這樣不同的請求方法...

Flask 請求響應迴圈

避免大量重複引數的訪問導致檢視函式 重複 亂的問題,flask使用上下文是一些變數再乙個執行緒中全域性可訪問,不會干擾其他執行緒。變數名上下文 說明程式上下文 當前啟用程式的程式例項 g程式上下文 處理請求時用於臨時儲存的物件,每次請求會重設g request 請求上下文 請求物件,封裝了http請...

Flask框架 請求鉤子與request請求物件

在客戶端和伺服器互動的過程中,有些準備工作或掃尾工作需要處理,比如 為了讓每個檢視函式避免編寫重複功能的 flask提供了通用設施的功能,即請求鉤子。請求鉤子是通過裝飾器的形式實現,flask支援如下四種請求鉤子 請求鉤子 描述before first request 在處理第乙個請求前執行 bef...