committed by
GitHub
2 changed files with 113 additions and 0 deletions
@ -0,0 +1,112 @@ |
|||
# <abbr title="En anglais: Debugging">Débogage</abbr> |
|||
|
|||
Vous pouvez connecter le <abbr title="En anglais: debugger">débogueur</abbr> dans votre éditeur, par exemple avec Visual Studio Code ou PyCharm. |
|||
|
|||
## Faites appel à `uvicorn` |
|||
|
|||
Dans votre application FastAPI, importez et exécutez directement `uvicorn` : |
|||
|
|||
```Python hl_lines="1 15" |
|||
{!../../../docs_src/debugging/tutorial001.py!} |
|||
``` |
|||
|
|||
### À propos de `__name__ == "__main__"` |
|||
|
|||
Le but principal de `__name__ == "__main__"` est d'avoir du code qui est exécuté lorsque votre fichier est appelé avec : |
|||
|
|||
<div class="termy"> |
|||
|
|||
```console |
|||
$ python myapp.py |
|||
``` |
|||
|
|||
</div> |
|||
|
|||
mais qui n'est pas appelé lorsqu'un autre fichier l'importe, comme dans : |
|||
|
|||
```Python |
|||
from myapp import app |
|||
``` |
|||
|
|||
#### Pour davantage de détails |
|||
|
|||
Imaginons que votre fichier s'appelle `myapp.py`. |
|||
|
|||
Si vous l'exécutez avec : |
|||
|
|||
<div class="termy"> |
|||
|
|||
```console |
|||
$ python myapp.py |
|||
``` |
|||
|
|||
</div> |
|||
|
|||
alors la variable interne `__name__` de votre fichier, créée automatiquement par Python, aura pour valeur la chaîne de caractères `"__main__"`. |
|||
|
|||
Ainsi, la section : |
|||
|
|||
```Python |
|||
uvicorn.run(app, host="0.0.0.0", port=8000) |
|||
``` |
|||
|
|||
va s'exécuter. |
|||
|
|||
--- |
|||
|
|||
Cela ne se produira pas si vous importez ce module (fichier). |
|||
|
|||
Par exemple, si vous avez un autre fichier `importer.py` qui contient : |
|||
|
|||
```Python |
|||
from myapp import app |
|||
|
|||
# Code supplémentaire |
|||
``` |
|||
|
|||
dans ce cas, la variable automatique `__name__` à l'intérieur de `myapp.py` n'aura pas la valeur `"__main__"`. |
|||
|
|||
Ainsi, la ligne : |
|||
|
|||
```Python |
|||
uvicorn.run(app, host="0.0.0.0", port=8000) |
|||
``` |
|||
|
|||
ne sera pas exécutée. |
|||
|
|||
!!! info |
|||
Pour plus d'informations, consultez <a href="https://docs.python.org/3/library/__main__.html" class="external-link" target="_blank">la documentation officielle de Python</a>. |
|||
|
|||
## Exécutez votre code avec votre <abbr title="En anglais: debugger">débogueur</abbr> |
|||
|
|||
Parce que vous exécutez le serveur Uvicorn directement depuis votre code, vous pouvez appeler votre programme Python (votre application FastAPI) directement depuis le <abbr title="En anglais: debugger">débogueur</abbr>. |
|||
|
|||
--- |
|||
|
|||
Par exemple, dans Visual Studio Code, vous pouvez : |
|||
|
|||
- Cliquer sur l'onglet "Debug" de la barre d'activités de Visual Studio Code. |
|||
- "Add configuration...". |
|||
- Sélectionnez "Python". |
|||
- Lancez le <abbr title="En anglais: debugger">débogueur</abbr> avec l'option "`Python: Current File (Integrated Terminal)`". |
|||
|
|||
Il démarrera alors le serveur avec votre code **FastAPI**, s'arrêtera à vos points d'arrêt, etc. |
|||
|
|||
Voici à quoi cela pourrait ressembler : |
|||
|
|||
<img src="/img/tutorial/debugging/image01.png"> |
|||
|
|||
--- |
|||
|
|||
Si vous utilisez Pycharm, vous pouvez : |
|||
|
|||
- Ouvrir le menu "Run". |
|||
- Sélectionnez l'option "Debug...". |
|||
- Un menu contextuel s'affiche alors. |
|||
- Sélectionnez le fichier à déboguer (dans ce cas, `main.py`). |
|||
|
|||
Il démarrera alors le serveur avec votre code **FastAPI**, s'arrêtera à vos points d'arrêt, etc. |
|||
|
|||
Voici à quoi cela pourrait ressembler : |
|||
|
|||
<img src="/img/tutorial/debugging/image02.png"> |
Loading…
Reference in new issue