FastAPI - 訪問表單資料



現在我們將瞭解如何在 FastAPI 操作函式中訪問 HTML 表單資料。在上面的示例中,/login 路由呈現了一個登入表單。使用者輸入的資料以 POST 作為請求方法提交到/submit URL。現在我們必須提供一個檢視函式來處理使用者提交的資料。

FastAPI 有一個 Form 類來處理透過提交 HTML 表單作為請求接收到的資料。但是,您需要安裝python-multipart 模組。它是 Python 的流式多部分表單解析器。

pip3 install python-multipart

Form 類新增到從 FastAPI 匯入的資源中

from fastapi import Form

讓我們定義一個submit() 函式,由 @app.post() 裝飾。為了接收表單資料,宣告兩個 Form 型別的引數,其名稱與表單屬性相同。

@app.post("/submit/")
async def submit(nm: str = Form(...), pwd: str = Form(...)):
   return {"username": nm}

填寫文字欄位後,按下提交。瀏覽器重定向到 /submit URL 並呈現 JSON 響應。檢查/submit 路由的 Swagger API 文件。它正確地將nmpwd 識別為請求體引數,並將表單的“媒體型別”識別為application/x-www-form-urlencoded。

FastAPI Accessing Form Data

甚至可以使用 HTML 表單資料填充並返回 Pydantic 模型。在以下程式碼中,我們將 User 類宣告為 Pydantic 模型,並將其物件作為伺服器的響應傳送。

from pydantic import BaseModel
class User(BaseModel):
   username:str
   password:str
@app.post("/submit/", response_model=User)
async def submit(nm: str = Form(...), pwd: str = Form(...)):
   return User(username=nm, password=pwd)
廣告

© . All rights reserved.