相关疑难解决方法(0)

Python:带有 post 请求的 FastAPI 错误 422

我正在构建一个简单的 API 来测试数据库。当我使用 get request 时一切正常,但如果我更改为 post,我会收到“无法处理的实体”错误:

这是 FastAPI 代码:

from fastapi import FastAPI

app = FastAPI()

@app.post("/")
def main(user):
    return user
Run Code Online (Sandbox Code Playgroud)

然后,我的请求使用 javascript

let axios = require('axios')

data = { 
    user: 'smith' 
}

axios.post('http://localhost:8000', data)
    .then(response => (console.log(response.url)))
Run Code Online (Sandbox Code Playgroud)

并使用 Python

import requests

url = 'http://127.0.0.1:8000'
data = {'user': 'Smith'}

response = requests.post(url, json=data)
print(response.text)
Run Code Online (Sandbox Code Playgroud)

我也尝试解析为 json,使用 utf-8 编码,并更改标题。没有什么对我有用。

python python-requests axios fastapi

15
推荐指数
5
解决办法
3万
查看次数

如何创建可以接受 Form 或 JSON 正文的 FastAPI 端点?

我想在 FastAPI 中创建一个可能接收(多部分)Form数据或JSON正文的端点。有没有办法让这样的端点接受或者检测正在接收哪种类型的数据?

python json multipartform-data starlette fastapi

6
推荐指数
1
解决办法
6025
查看次数

FastAPI - 如何修改来自内部依赖项的请求?

如何从依赖项内部修改请求?基本上我想test_value向请求添加一些信息(),然后能够从视图函数(在我的例子中是root()函数)获取它。

下面是一个简单的例子:

from fastapi import FastAPI, Depends, Request

app = FastAPI()

def test(request: Request):
    request['test_value'] = 'test value'

@app.get("/", dependencies=[Depends(test)])
async def root(request: Request):
    print(request.test_value)
    return {"test": "test root path."}
Run Code Online (Sandbox Code Playgroud)

python starlette fastapi

4
推荐指数
1
解决办法
4980
查看次数

如何在 FastAPI POST 请求中同时添加文件和 JSON 正文?

具体来说,我希望以下示例能够正常工作:

from typing import List
from pydantic import BaseModel
from fastapi import FastAPI, UploadFile, File


app = FastAPI()


class DataConfiguration(BaseModel):
    textColumnNames: List[str]
    idColumn: str


@app.post("/data")
async def data(dataConfiguration: DataConfiguration,
               csvFile: UploadFile = File(...)):
    pass
    # read requested id and text columns from csvFile
Run Code Online (Sandbox Code Playgroud)

如果这不是 POST 请求的正确方法,请告诉我如何从 FastAPI 中上传的 CSV 文件中选择所需的列。

python http http-post pydantic fastapi

2
推荐指数
3
解决办法
1659
查看次数