デバッグ¶
Visual Studio CodeやPyCharmなどのエディタでデバッガーを接続できます。
uvicorn
を呼び出す¶
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__"
について¶
__name__ == "__main__"
の主な目的は、ファイルが次のように呼び出されたときに実行されるコードを持つことです。
$ python myapp.py
ただし、次のように別のファイルがインポートした場合は呼び出されません。
from myapp import app
詳細¶
ファイル名を myapp.py
とします。
次のように実行すると、
$ python myapp.py
ファイル内の内部変数 __name__
(Pythonによって自動的に作成されます) は、値として文字列 "__main__"
を持ちます。
したがって、このセクションは
uvicorn.run(app, host="0.0.0.0", port=8000)
実行されます。
モジュール (ファイル) をインポートした場合、これは発生しません。
したがって、次のような別のファイル importer.py
がある場合、
from myapp import app
# Some more code
この場合、myapp.py
内で自動的に作成された変数は、__name__
変数に "__main__"
という値を持つことはありません。
したがって、次の行は
uvicorn.run(app, host="0.0.0.0", port=8000)
実行されません。
情報
詳細については、Pythonの公式ドキュメントを確認してください。
デバッガでコードを実行する¶
Uvicornサーバーをコードから直接実行しているため、Pythonプログラム (FastAPIアプリケーション) をデバッガーから直接呼び出すことができます。
たとえば、Visual Studio Codeでは、次のようにできます。
- "デバッグ"パネルに移動します。
- "構成を追加..."。
- "Python"を選択します。
- オプション "
Python: 現在のファイル (統合ターミナル)
" でデバッガーを実行します。
これにより、FastAPIコードでサーバーが起動し、ブレークポイントで停止するなどが行われます。
次のようになります。
Pycharmを使用している場合は、次のようにできます。
- "実行"メニューを開きます。
- "デバッグ..."オプションを選択します。
- 次に、コンテキストメニューが表示されます。
- デバッグするファイルを選択します (この場合は
main.py
)。
これにより、FastAPIコードでサーバーが起動し、ブレークポイントで停止するなどが行われます。
次のようになります。