你可以在你的编辑器中连接调试器,例如用Visual Studio Code或PyCharm。

uvicorn

在您的FastAPI应用程序中,直接导入并运行uvicorn。

  1. import uvicorn
  2. from fastapi import FastAPI
  3. app = FastAPI()
  4. @app.get("/")
  5. def root():
  6. a = "a"
  7. b = "b" + a
  8. return {"hello world": b}
  9. if __name__ == "__main__":
  10. uvicorn.run(app, host="0.0.0.0", port=8000)

关于__name__ == "__main__"

name == “main“的主要目的是当你的文件被调用时,代码将被执行。

  1. python myapp.py

但当另一个文件导入它时却没有被调用,比如:

  1. from myapp import app

更多细节

比方说有一个myapp.py
运行他

  1. python myapp.py

由 Python 自动转换内部变量 name 变成字符串 “main“ 。

所以:

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

将被运行

如果你导入该模块(文件)就不会发生这种情况。

debugger模式运行代码

因为是直接从代码中运行Uvicorn服务器,所以可以直接从调试器中调用你的Python程序(你的FastAPI应用程序)

例如在vscode中:
然后它会用你的FastAPI代码启动服务器,在你的断点处停止等等。
Debugging - 图1

如果使用Pycharm

Debugging - 图2