• form-data 表单格式的请求数据其实也是挺常见的
  • FastAPI 通过 Form 来声明参数需要接收表单数据

 

要用 Form,需要先安装这个库

pip install python-multipart

 

Form 是继承自 Body,所以可以定义和 Body 相同的元数据以及额外的验证

FastAPI(23)- 详解 Form,发送表单数据 
    





            
FastAPI(23)- 详解 Form,发送表单数据 

 

FastAPI(23)- 详解 Form,发送表单数据 
    





            
FastAPI(23)- 详解 Form,发送表单数据 
import uvicorn
from fastapi import FastAPI, Form

app = FastAPI()


@app.post("/login/")
async def login(username: str = Form(...), password: str = Form(...)):
    return {"username": username, "password": password}


if __name__ == "__main__":
    uvicorn.run(app="10_Form:app", host="127.0.0.1", port=8080, reload=True, debug=True)
FastAPI(23)- 详解 Form,发送表单数据 
    





            
FastAPI(23)- 详解 Form,发送表单数据 

在 OAuth2 规范的一种使用方式(密码流)中,需要将用户名、密码作为表单字段发送,而不是 JSON【后面会详解 OAuth2】

 

  • 请求发送表单格式的数据,请求头通常会包含 Content-Type: application/x-www-form-urlencoded 
  • 如果需要发送包含文件的表单数据, 会变成 Content-Type: multipart/form-data 

 

FastAPI(23)- 详解 Form,发送表单数据 
    





            
FastAPI(23)- 详解 Form,发送表单数据 

 

FastAPI(23)- 详解 Form,发送表单数据 
    





            
FastAPI(23)- 详解 Form,发送表单数据 

 

FastAPI(23)- 详解 Form,发送表单数据 
    





            
FastAPI(23)- 详解 Form,发送表单数据 

  • 可以看到接口文档中,接口的 Content-type 默认也是 application/x-www-form-urlencoded 
  • 注意:在 Swagger 上无法测试上传文件,因为 Content-type 无法切换到  multipart/form-data ,如果需要测试,要用 FastAPI 提供的 File 哦
  • File 详细教程

 

  • form-data 表单格式的请求数据其实也是挺常见的
  • FastAPI 通过 Form 来声明参数需要接收表单数据

 

要用 Form,需要先安装这个库

pip install python-multipart

 

Form 是继承自 Body,所以可以定义和 Body 相同的元数据以及额外的验证

FastAPI(23)- 详解 Form,发送表单数据 
    





            
FastAPI(23)- 详解 Form,发送表单数据 

 

FastAPI(23)- 详解 Form,发送表单数据 
    





            
FastAPI(23)- 详解 Form,发送表单数据 
import uvicorn
from fastapi import FastAPI, Form

app = FastAPI()


@app.post("/login/")
async def login(username: str = Form(...), password: str = Form(...)):
    return {"username": username, "password": password}


if __name__ == "__main__":
    uvicorn.run(app="10_Form:app", host="127.0.0.1", port=8080, reload=True, debug=True)
FastAPI(23)- 详解 Form,发送表单数据 
    





            
FastAPI(23)- 详解 Form,发送表单数据 

在 OAuth2 规范的一种使用方式(密码流)中,需要将用户名、密码作为表单字段发送,而不是 JSON【后面会详解 OAuth2】

 

  • 请求发送表单格式的数据,请求头通常会包含 Content-Type: application/x-www-form-urlencoded 
  • 如果需要发送包含文件的表单数据, 会变成 Content-Type: multipart/form-data 

 

FastAPI(23)- 详解 Form,发送表单数据 
    





            
FastAPI(23)- 详解 Form,发送表单数据 

 

FastAPI(23)- 详解 Form,发送表单数据 
    





            
FastAPI(23)- 详解 Form,发送表单数据 

 

FastAPI(23)- 详解 Form,发送表单数据 
    





            
FastAPI(23)- 详解 Form,发送表单数据 

  • 可以看到接口文档中,接口的 Content-type 默认也是 application/x-www-form-urlencoded 
  • 注意:在 Swagger 上无法测试上传文件,因为 Content-type 无法切换到  multipart/form-data ,如果需要测试,要用 FastAPI 提供的 File 哦
  • File 详细教程

 

相关文章: