diff --git a/docs/ja/docs/tutorial/debugging.md b/docs/ja/docs/tutorial/debugging.md new file mode 100644 index 000000000..35e1ca7ad --- /dev/null +++ b/docs/ja/docs/tutorial/debugging.md @@ -0,0 +1,112 @@ +# デバッグ + +Visual Studio CodeやPyCharmなどを使用して、エディター上でデバッガーと連携できます。 + +## `uvicorn` の実行 + +FastAPIアプリケーション上で、`uvicorn` を直接インポートして実行します: + +```Python hl_lines="1 15" +{!../../../docs_src/debugging/tutorial001.py!} +``` + +### `__name__ == "__main__"` について + +`__name__ == "__main__"` の主な目的は、ファイルが次のコマンドで呼び出されたときに実行されるコードを用意することです: + +
+ +```console +$ python myapp.py +``` + +
+ +ただし、次のように、別のファイルからインポートされるときには呼び出されません: + +```Python +from myapp import app +``` + +#### より詳しい説明 + +ファイルの名前が `myapp.py` だとします。 + +以下の様に実行する場合: + +
+ +```console +$ python myapp.py +``` + +
+ +Pythonによって自動的に作成されたファイル内の内部変数 `__name__` は、値として文字列 `"__main__"` を持ちます。 + +なので、以下: + +```Python + uvicorn.run(app, host="0.0.0.0", port=8000) +``` + +は実行されます。 + +--- + +そのモジュール (ファイル) をインポートした場合は、こうはなりません。 + +したがって、次のようなもう一つのファイル `importer.py` がある場合: + +```Python +from myapp import app + +# Some more code +``` + +`myapp.py` 内の自動変数には、値が `"__main __"` の変数 `__name__` はありません。 + +したがって、以下の行: + +```Python + uvicorn.run(app, host="0.0.0.0", port=8000) +``` + +は実行されません。 + +!!! info "情報" + より詳しい情報は、公式Pythonドキュメントを参照してください。 + +## デバッガーでコードを実行 + +コードから直接Uvicornサーバーを実行しているため、デバッガーから直接Pythonプログラム (FastAPIアプリケーション) を呼び出せます。 + +--- + +例えば、Visual Studio Codeでは、次のことが可能です: + +* 「デバッグ」パネルに移動。 +* 「構成の追加...」 +* 「Python」を選択。 +* オプション「`Python: Current File (Integrated Terminal)`」を指定してデバッガーを実行。 + +すると、**FastAPI** コードでサーバーが起動され、ブレークポイントで停止したりするでしょう。 + +以下の様な画面になります: + + + +--- + +Pycharmを使用する場合、次のことが可能です: + +* 「実行」メニューをオープン。 +* オプション「デバッグ...」を選択。 +* 次にコンテキストメニューが表示される。 +* デバッグするファイル (ここでは `main.py`) を選択。 + +すると、**FastAPI** コードでサーバーが起動され、ブレークポイントで停止したりするでしょう。 + +以下の様な画面になります: + + diff --git a/docs/ja/mkdocs.yml b/docs/ja/mkdocs.yml index b9c5154f7..8cc5c88bc 100644 --- a/docs/ja/mkdocs.yml +++ b/docs/ja/mkdocs.yml @@ -67,6 +67,7 @@ nav: - tutorial/security/first-steps.md - tutorial/middleware.md - tutorial/cors.md + - tutorial/debugging.md - 高度なユーザーガイド: - advanced/path-operation-advanced-configuration.md - advanced/additional-status-codes.md