Aller au contenu

Débogage

Vous pouvez connecter le débogueur dans votre éditeur, par exemple avec Visual Studio Code ou PyCharm.

Faites appel à uvicorn

Dans votre application FastAPI, importez et exécutez directement 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)

À 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 :

$ python myapp.py

mais qui n'est pas appelé lorsqu'un autre fichier l'importe, comme dans :

from myapp import app

Pour davantage de détails

Imaginons que votre fichier s'appelle myapp.py.

Si vous l'exécutez avec :

$ python myapp.py

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 :

    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 :

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 :

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

ne sera pas exécutée.

Info

Pour plus d'informations, consultez la documentation officielle de Python.

Exécutez votre code avec votre débogueur

Parce que vous exécutez le serveur Uvicorn directement depuis votre code, vous pouvez appeler votre programme Python (votre application FastAPI) directement depuis le débogueur.


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 débogueur 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 :


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 :