在 python FastAPI 中解析数据时出错

Errror parsing data in python FastAPI

我正在学习使用 FastAPI,我在实现一个简单的 API 时一遍又一遍地遇到这个错误,我一直无法弄清楚为什么

"detail": "There was an error parsing the body"

这两个端点发生在我身上:

完整代码:Code Repository

片段:

app_v1 = FastAPI(root_path='/v1')

# JWT Token request
@app_v1.post('/token')
async def login_access_token(form_data: OAuth2PasswordRequestForm = Depends()):
    jwt_user_dict = {"username": form_data.username, "password": form_data.password}
    jwt_user = JWTUser(**jwt_user_dict)
    user = authenticate_user(jwt_user)
    if user is None:
        return HTTP_401_UNAUTHORIZED
    jwt_token = create_jwt_token(user)
    return {"token": jwt_token}

要求:

@app_v1.post("/user/photo")
async def update_photo(response: Response, profile_photo: bytes = File(...)):
    response.headers['x-file-size'] = str(len(profile_photo))
    response.set_cookie(key='cookie-api', value="test")
    return {"profile photo size": len(profile_photo)}

要求:

第一个请求的问题是您应该在 form-data 中发送 usernamepassword。使用 form-data 而不是 x-www-form-urlencoded,你应该没问题。

我看不出第二个有什么问题。您可以尝试使用 Swagger 界面,看看那里是否会发生同样的情况?

我想明白了,是因为安装 FastAPI 时没有安装 python-multipart,所以这个包缺少所有需要 multipart 的东西

安装后效果很好

谢谢