要用 Form,需要先安装这个库
pip install python-multipart
Form 是继承自 Body,所以可以定义和 Body 相同的元数据以及额外的验证
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)
在 OAuth2 规范的一种使用方式(密码流)中,需要将用户名、密码作为表单字段发送,而不是 JSON【后面会详解 OAuth2】
Content-Type: application/x-www-form-urlencoded
Content-Type: multipart/form-data
application/x-www-form-urlencoded
multipart/form-data