如何使用 Pycharm 运行 fast-api 服务器?

How can I run the fast-api server using Pycharm?

我有一个简单的 API 函数,如下所示,

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def read_root():
    return {"Hello": "World"}

我正在使用 uvicorn 命令启动服务器,

uvicorn main:app

因为我们没有直接调用任何python文件,所以不可能从Pycharm调用uvicorn命令。

那么,我怎样才能 运行 使用 Pycharm 的快速 api 服务器?

尝试在您的代码中调用 uvicorn。例如:

from fastapi import FastAPI
import uvicorn

app = FastAPI()


@app.get("/")
async def read_root():
    return {"Hello": "World"}

if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=5000, log_level="info")

Reference

方法一:运行 FastAPI 通过调用 uvicorn.run(...)

在这种情况下,您的最小代码如下,

# main.py

<b>import uvicorn</b>
from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def read_root():
    return {"Hello": "World"}


<b>if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)</b>

通常,您将通过运行以下命令启动服务器,

python main.py

Pycharm 设置

对于此设置,现在,您可以在 Pycharm 的配置中设置脚本路径

备注

  • 脚本路径:FastAPI 脚本的路径
  • Python 口译员:选择您的 interpreter/virtual 环境
  • 工作目录:您的 FastAPI 项目根目录

方法 2:运行 FastAPI 通过调用 uvicorn 命令

在这种情况下,您的最小代码如下,

# main.py

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def read_root():
    return {"Hello": "World"}

通常,您将通过运行以下命令启动服务器,

uvicorn main:app --reload

Pycharm 设置

对于此设置,现在,您可以在 Pycharm 的配置中设置脚本路径

备注

  • 模块名称:设置为uvicorn
  • [可选] 脚本:uvicorn 二进制文件的路径。您将通过在您的环境中执行命令 which uvicorn 来获取路径。 (See this image)
  • 参数:uvicorn命令的实际参数
  • Python 口译员:选择您的 interpreter/virtual 环境
  • 工作目录:您的 FastAPI 项目根目录

不加代码也可以做到main.py

  1. target to run 而不是 Script path 中选择 Module name
  2. Module name 中键入 uvicorn
  3. 在参数中app.main:app --reload --port 5000

另一个例子,这可能对某人有帮助。

# fastapi_demo.py

import uvicorn
from fastapi import FastAPI, Response

app = FastAPI()

@app.route('/', methods=['POST'])
def demo(request):
    try:
        print(request)
    except Exception as e:
        print(e)
    return Response(content='OK')


if __name__ == '__main__':
    uvicorn.run(app='fastapi_demo:app')