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: