post 请求、FastApi、python 的 Postman 状态“无效标头”

问题描述 投票:0回答:1

我正在使用 FastAPI 和 python 构建一些小型应用程序。 我正在尝试向我的应用程序添加发布请求,但每次我尝试发出发布请求时,它都会显示带有 400 状态的无效标头(错误请求)。

请看下面的代码- Python + fastApi:

from fastapi import APIRouter, HTTPException, Request, FastAPI
from fastapi.responses import JSONResponse
from pydantic import BaseModel

app = FastAPI()
router = APIRouter()


class UserCreate(BaseModel):
    user_id: int
    username: str

    @router.post("/create_user/")
    def create_user(user_data: UserCreate):
        return {
            "msg": "Data received successfully",
            "user_id": user_data.user_id,
            "username": user_data.username,
        }

    app.include_router(router, prefix="/mytest")

邮递员要求: enter image description here

我使用

daphne
作为服务器来运行 fastApi + myapplication。类似 -
daphne -b 127.0.0.1 -p 8000 app.main:app
(我也尝试了 uvicorn,与 uvicorn 出现同样的错误)

奇怪-如果我运行相同的代码并仅创建 uvicorn 实例,例如- 主要.py:

from fastapi import FastAPI
from pydantic import BaseModel

app = APIRouter()


class UserCreate(BaseModel):
    user_id: int
    username: str


@app.post("/create_user/")
async def create_user(user_data: UserCreate):
    user_id = user_data.user_id
    username = user_data.username
    return {
        "msg": "we got data succesfully",
        "user_id": user_id,
        "username": username,
    }


if __name__ == "__main__":
    import uvicorn

    uvicorn.run(app, host="127.0.0.1", port=8000)

上面的代码执行没有任何错误/异常,

python -u main.py

我错过了什么?

python postman fastapi uvicorn daphne
1个回答
0
投票

您已经定义了路线并在模型中包含了路由器,这导致了问题,如果您将它们移到模型之外,它应该可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.