如何使用 Pycharm 运行 FastAPI 服务器?

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

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

from fastapi import FastAPI

app = FastAPI()


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

我正在使用

uvicorn
命令启动服务器,

uvicorn main:app

由于我们不直接调用任何Python文件,因此无法从Pycharm调用uvicorn

命令。

那么,

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

python pycharm fastapi
5个回答
203
投票
方法-1:通过调用

uvicorn.run(...)
运行 FastAPI

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

# main.py import uvicorn from fastapi import FastAPI app = FastAPI() @app.get("/") async def read_root(): return {"Hello": "World"} if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=8000)
通常,您将通过运行以下命令来启动服务器,

python main.py
Pycharm 设置

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

Pycharm-uvicorn.run

注释

    脚本路径:FastAPI 脚本的路径
  • Python 解释器:选择您的解释器/虚拟环境
  • 工作目录:您的 FastAPI 项目根目录

方法2:通过调用

uvicorn
命令运行FastAPI

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

# main.py from fastapi import FastAPI app = FastAPI() @app.get("/") async def read_root(): return {"Hello": "World"}
通常,您将通过运行以下命令来启动服务器,

uvicorn main:app --reload
Pycharm 设置

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

Pycharm-uvicorn.command

注释

    模块名称:设置为
  • uvicorn
    
    
  • [可选]脚本:
  • uvicorn
    二进制文件的路径。您将通过在环境中执行命令 
    which uvicorn
    来获取路径。 (
    看这张图片)
  • 参数:
  • uvicorn
    命令的实际参数
  • Python 解释器:选择您的解释器/虚拟环境
  • 工作目录:您的 FastAPI 项目根目录

55
投票
无需在 main.py 中添加代码即可完成

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

enter image description here


14
投票
尝试在代码中调用 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")

参考


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

# 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')
    

2
投票
PyCharm Professional 现在允许您选择 FastAPI 作为项目类型。即使您没有以这种方式开始,也有一个关联的 FastAPI

运行配置模板,您可以在其他项目中使用它。用于调试 Docker 容器中运行的 FastAPI 的示例配置:

screenshot of PyCharm FastAPI run config

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