在 VSCode 下调试 python-FastAPI 时需要路由请求方面的帮助

Need assistance on routing requests while debugging python-FastAPI under VSCode

这是我第一次尝试使用 VSCode 进行 python 开发,我 运行 遇到了问题,我不知道为什么。

眼前的问题是我似乎无法让 uvicorn 将我的浏览器请求路由到我的 fastAPI 模块。这是我的代码的相关部分:

import uvicorn
from fastapi import FastAPI, Header, HTTPException, Request, status, Response
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import JSONResponse
from pydantic import BaseModel

# initialize (FAST) API framework.
app = FastAPI()

# configure Cross-Origin Resource Sharing configuration
# TODO : Have to enter all the allowed origins
origins = ["*"]
app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)   

if __name__ == "__main__":
    uvicorn.run(app, host="127.0.0.1", port=8000)
    
################################
#   endpoint definitions       #
################################ 

# test endpoint
@app.get("/")
async def test():
    x=0
    return x

所以我在“x = 0”语句和 运行 调试器上设置了断点,一切正常,没有例外,uvicorn 似乎在等待请求。

我的浏览器请求是http://127.0.0.1:8000/

我在终端window看到的是这样的:

INFO:     Started server process [22764]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     127.0.0.1:64541 - "GET /incentives HTTP/1.1" 404 Not Found
INFO:     127.0.0.1:64544 - "GET / HTTP/1.1" 404 Not Found

我仔细阅读了我能找到的文档并尝试了一些排列但没有成功。我从来没有达到断点。

我也试过在 VSCode 文件夹下设置一个“launch.json”文件,但似乎没有做任何事情,而且似乎没有启动 uvicron 任务或设置我的环境变量。

您有一个订购问题。您的函数永远不会被定义,因为 uvicorn.run 永远不会 returns。首先定义函数。