一、路由參數與請求方法
Flask 路由允許定義多種參數類型,并通過 methods
屬性限制請求方法。
1. 路由參數類型:
除了默認的 string
,Flask 還支持:
-
int
: 匹配整數,自動轉換為 Pythonint
類型。非數字輸入會返回 404。 -
float
: 匹配浮點數,自動轉換為 Pythonfloat
類型。 -
path
: 匹配包含斜杠/
的路徑(斜杠不被視為參數分隔符),但會將其轉換為字符串。-
區別于默認
string
:string
類型會把/
視為路徑分隔符,導致參數截斷。
-
-
uuid
: 匹配符合 UUID 格式的字符串,并自動轉換為UUID
對象。嚴格校驗格式。 -
any
: 限制參數值只能是預定義元組中的一個(如any(c,d,e)
),類似于枚舉。-
總結: Flask 的路由參數類型支持精準匹配和自動類型轉換,優于 Django 默認將所有 URL 參數視為字符串。
-
2. 請求方法(HTTP動詞):
-
默認情況下,Flask 路由支持 GET 和 HEAD 請求。
-
限制方法: 使用
methods
屬性(列表)來指定允許的 HTTP 方法,例如methods=['GET', 'POST']
。 -
HTTP 狀態碼: 不允許的方法請求會返回 405 Method Not Allowed 錯誤。
-
常見 HTTP 方法及其語義:
-
GET: 獲取資源(檢索)。
-
POST: 提交/創建資源(提交數據,如表單提交)。
-
PUT: 創建或更新資源(整體替換)。
-
DELETE: 刪除資源。
-
HEAD: 獲取資源的元數據(如響應頭),不返回響應體。
-
-
RESTful API 實踐: 通過不同 HTTP 方法操作同一資源路徑,實現高內聚,例如
/user
路徑,GET 獲取用戶,PO