Saltar a contenido

Depuración

Puedes conectar el depurador en tu editor, por ejemplo con Visual Studio Code o PyCharm.

Llama a uvicorn

En tu aplicación de FastAPI, importa y ejecuta uvicorn directamente:

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)

Acerca de __name__ == "__main__"

El objetivo principal de __name__ == "__main__" es tener algo de código que se ejecute cuando tu archivo es llamado con:

$ python myapp.py

pero no es llamado cuando otro archivo lo importa, como en:

from myapp import app

Más detalles

Supongamos que tu archivo se llama myapp.py.

Si lo ejecutas con:

$ python myapp.py

entonces la variable interna __name__ en tu archivo, creada automáticamente por Python, tendrá como valor el string "__main__".

Así que, la sección:

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

se ejecutará.


Esto no ocurrirá si importas ese módulo (archivo).

Entonces, si tienes otro archivo importer.py con:

from myapp import app

# Algún código adicional

en ese caso, la variable creada automáticamente dentro de myapp.py no tendrá la variable __name__ con un valor de "__main__".

Así que, la línea:

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

no se ejecutará.

Información

Para más información, revisa la documentación oficial de Python.

Ejecuta tu código con tu depurador

Dado que estás ejecutando el servidor Uvicorn directamente desde tu código, puedes llamar a tu programa de Python (tu aplicación FastAPI) directamente desde el depurador.


Por ejemplo, en Visual Studio Code, puedes:

  • Ir al panel de "Debug".
  • "Add configuration...".
  • Seleccionar "Python".
  • Ejecutar el depurador con la opción "Python: Current File (Integrated Terminal)".

Luego, iniciará el servidor con tu código FastAPI, deteniéndose en tus puntos de interrupción, etc.

Así es como podría verse:


Si usas PyCharm, puedes:

  • Abrir el menú "Run".
  • Seleccionar la opción "Debug...".
  • Luego aparece un menú contextual.
  • Selecciona el archivo para depurar (en este caso, main.py).

Luego, iniciará el servidor con tu código FastAPI, deteniéndose en tus puntos de interrupción, etc.

Así es como podría verse: