1. 程式人生 > >request物件和flask模組

request物件和flask模組

裝飾器路由具體實現梳理

在這裡插入圖片描述
Flask有兩大核心:Werkzeug和Jinja2
- Werkzeug實現路由、除錯和Web伺服器閘道器介面 - Jinja2實現了模板。
Werkzeug是一個遵循WSGI協議的python函式庫
- 其內部實現了很多Web框架底層的東西,比如request和response物件;
-與WSGI規範的相容;支援Unicode;
- 支援基本的會話管理和簽名Cookie;
- 整合URL請求路由等。

Werkzeug庫的 routing 模組負責實現 URL 解析。不同的 URL 對應不同的檢視函式,routing模組會對請求資訊的URL進行解析,匹配到URL對應的檢視函式,執行該函式以此生成一個響應資訊。
routing模組內部有:

  • Rule類
    • 用來構造不同的URL模式的物件,路由URL規則
  • Map類
    • 儲存所有的URL規則和一些配置引數
  • BaseConverter的子類
    • 負責定義匹配規則
  • MapAdapter類
    • 負責協調Rule做具體的匹配的工作

request物件

request 就是flask中代表當前請求的 request 物件,其中一個請求上下文變數(理解成全域性變數,在檢視函式中直接使用可以取到當前本次請求)

常用的屬性如下:

屬性 說明 型別
data 記錄請求的資料,並轉換為字串 *
form 記錄請求中的表單資料 MultiDict
args 記錄請求中的查詢引數 MultiDict
cookies 記錄請求中的cookie資訊 Dict
headers 記錄請求中的報文頭 EnvironHeaders
method 記錄請求使用的HTTP方法 GET/POST
url 記錄請求的URL地址 string
files 記錄請求上傳的檔案 *