你可以在编辑器中连接调试器,例如使用 Visual Studio Code 或 PyCharm。
在你的 FastAPI 应用中直接导入 uvicorn 并运行:
import uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def root():
a = "a"
b = "b" + a
return {"hello world": b}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
__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)
如果你是导入这个模块(文件)就不会这样。
因此,如果你的另一个文件 importer.py 像这样:
from myapp import app
# Some more code
在这种情况下,myapp.py 内部的自动变量不会有值为 "__main__" 的变量 __name__。
所以,下面这一行不会被执行:
uvicorn.run(app, host="0.0.0.0", port=8000)
Info
更多信息请检查 Python 官方文档.
由于是从代码直接运行的 Uvicorn 服务器,所以你可以从调试器直接调用 Python 程序(你的 FastAPI 应用)。
例如,你可以在 Visual Studio Code 中:
然后它会使用你的 FastAPI 代码开启服务器,停在断点处,等等。
看起来可能是这样:
如果使用 Pycharm,你可以:
然后它会使用你的 FastAPI 代码开启服务器,停在断点处,等等。
看起来可能是这样:
应用上下文存在的主要原因是,在过去,请求上下文被附加了一堆函数,但是又没 有什么好的解决方案。因为 Flask 设计的支柱之一是...
为开发环境安装virtualenv virtualenv是一个虚拟的Python环境构建器。它可以帮助用户并行创建多个Python环境。因此,它可以避免...
如果你正在编写一个 可重用的应用程序,你可能想使用 Django 测试运行器来运行你自己的测试套件,从而从 Django 测试基础设施中...
数据库配置现在,打开 mysite/settings.py 。这是个包含了 Django 项目设置的 Python 模块。通常,这个配置文件使用 SQLite ...