FastAPI教程 調(diào)試

2021-11-22 15:21 更新

你可以在編輯器中連接調(diào)試器,例如使用 Visual Studio Code 或 PyCharm。

調(diào)用 uvicorn

在你的 FastAPI 應(yīng)用中直接導(dǎo)入 uvicorn 并運(yùn)行:

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)

關(guān)于 __name__ == "__main__"

__name__ == "__main__" 的主要目的是使用以下代碼調(diào)用文件時(shí)執(zhí)行一些代碼:

python myapp.py

而當(dāng)其它文件導(dǎo)入它時(shí)并不會被調(diào)用,像這樣:

from myapp import app

更多細(xì)節(jié)

假設(shè)你的文件命名為 myapp.py。

如果你這樣運(yùn)行:

python myapp.py

所以,下面這部分代碼才會運(yùn)行:那么文件中由 Python 自動創(chuàng)建的內(nèi)部變量 __name__,會將字符串 "__main__" 作為值。

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

如果你是導(dǎo)入這個(gè)模塊(文件)就不會這樣。

因此,如果你的另一個(gè)文件 importer.py 像這樣:

from myapp import app

# Some more code

在這種情況下,myapp.py 內(nèi)部的自動變量不會有值為 "__main__" 的變量 __name__。

所以,下面這一行不會被執(zhí)行:

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

Info

更多信息請檢查 Python 官方文檔.

使用你的調(diào)試器運(yùn)行代碼

由于是從代碼直接運(yùn)行的 Uvicorn 服務(wù)器,所以你可以從調(diào)試器直接調(diào)用 Python 程序(你的 FastAPI 應(yīng)用)。

例如,你可以在 Visual Studio Code 中:

  • 進(jìn)入到「調(diào)試」面板。
  • 「添加配置...」。
  • 選中「Python」
  • 運(yùn)行「Python:當(dāng)前文件(集成終端)」選項(xiàng)的調(diào)試器。

然后它會使用你的 FastAPI 代碼開啟服務(wù)器,停在斷點(diǎn)處,等等。

看起來可能是這樣:

如果使用 Pycharm,你可以:

  • 打開「運(yùn)行」菜單。
  • 選中「調(diào)試...」。
  • 然后出現(xiàn)一個(gè)上下文菜單。
  • 選擇要調(diào)試的文件(本例中的 main.py)。

然后它會使用你的 FastAPI 代碼開啟服務(wù)器,停在斷點(diǎn)處,等等。

看起來可能是這樣:


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號