你可以在你的编辑器中连接调试器,例如用Visual Studio Code或PyCharm。
uvicorn
在您的FastAPI应用程序中,直接导入并运行uvicorn。
import uvicornfrom fastapi import FastAPIapp = FastAPI()@app.get("/")def root():a = "a"b = "b" + areturn {"hello world": b}if __name__ == "__main__":uvicorn.run(app, host="0.0.0.0", port=8000)
关于__name__ == "__main__"
name == “main“的主要目的是当你的文件被调用时,代码将被执行。
python myapp.py
但当另一个文件导入它时却没有被调用,比如:
from myapp import app
更多细节
比方说有一个myapp.py
运行他
python myapp.py
由 Python 自动转换内部变量 name 变成字符串 “main“ 。
所以:
uvicorn.run(app, host="0.0.0.0", port=8000)
将被运行
如果你导入该模块(文件)就不会发生这种情况。
debugger模式运行代码
因为是直接从代码中运行Uvicorn服务器,所以可以直接从调试器中调用你的Python程序(你的FastAPI应用程序)
例如在vscode中:
然后它会用你的FastAPI代码启动服务器,在你的断点处停止等等。
如果使用Pycharm

