1. 程式人生 > 其它 >FastAPI 學習之路(十六)Form表單

FastAPI 學習之路(十六)Form表單

系列文章:

  FastAPI 學習之路(一)fastapi--高效能web開發框架

  FastAPI 學習之路(二)

  FastAPI 學習之路(三)

  FastAPI 學習之路(四)

  FastAPI 學習之路(五)

FastAPI 學習之路(六)查詢引數,字串的校驗

  FastAPI 學習之路(七)字串的校驗

 FastAPI 學習之路(八)路徑引數和數值的校驗

  FastAPI 學習之路(九)請求體有多個引數如何處理?

  FastAPI 學習之路(十)請求體的欄位

FastAPI 學習之路(十一)請求體 - 巢狀模型

  FastAPI 學習之路(十二)介面幾個額外資訊和額外資料型別

FastAPI 學習之路(十三)Cookie 引數,Header引數

  FastAPI 學習之路(十四)響應模型

  FastAPI 學習之路(十五)響應狀態碼

我們首先來安裝下,

pip install python-multipart

 我們去實現一個登入的表單。當密碼等於leizi返回使用者名稱,其他的返回失敗。

from fastapi import FastAPI, Form
app = FastAPI()
@app.post("/login/")
def login(username: str = Form(...), password: str = Form(...)):
    
if password == "leizi": return {"username": username} return "密碼錯誤"

我們看下除錯的結果

我們輸入正確的使用者名稱密碼。

這樣一個簡單的Form表單就完成了。其實還是很簡單的就是匯入對應的依賴庫,然後去組織對應的請求即可。那麼我們再來實現一個需求。

我們現在有一個註冊的表單,我們的使用者名稱長度為8-16位的字母,密碼的長度是8-16位的數字。符合要求,我們認為註冊成功,返回對應的使用者名稱。這樣的需求我們應該怎麼實現。

from fastapi import FastAPI, Form

app 
= FastAPI() @app.post("/regin") def regin(username:str=Form(...,max_length=16,min_length=8,regex='[a-zA-Z]'), password:str=Form(...,max_length=16,min_length=8,regex='[0-9]')): return {"username":username}

其實很簡單的,那麼我們除錯下,看是否是滿足我們的需求的,我們先來正確的測試。

我們看下我們的使用者名稱不符合要求的時候,如何展示

那麼我們的密碼處理的呢

可以看到我們的一個簡單的登錄檔單就實現了,我們也做了簡單的測試。

注意:表單資料的「媒體型別」編碼一般為application/x-www-form-urlencoded。

但包含檔案的表單編碼為multipart/form-data,等上傳檔案的時候,我們再來看下具體的情況。

文章首發在公眾號,歡迎關注。