Depuração¶
Você pode conectar o depurador no seu editor, por exemplo, com o Visual Studio Code ou PyCharm.
Chamar uvicorn
¶
Em seu aplicativo FastAPI, importe e execute uvicorn
diretamente:
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)
Sobre __name__ == "__main__"
¶
O objetivo principal de __name__ == "__main__"
é ter algum código que seja executado quando seu arquivo for chamado com:
$ python myapp.py
mas não é chamado quando outro arquivo o importa, como em:
from myapp import app
Mais detalhes¶
Digamos que seu arquivo se chama myapp.py
.
Se você executá-lo com:
$ python myapp.py
então a variável interna __name__
no seu arquivo, criada automaticamente pelo Python, terá como valor a string "__main__"
.
Então, a seção:
uvicorn.run(app, host="0.0.0.0", port=8000)
vai executar.
Isso não acontecerá se você importar esse módulo (arquivo).
Então, se você tiver outro arquivo importer.py
com:
from myapp import app
# Mais um pouco de código
nesse caso, a variável criada automaticamente dentro de myapp.py
não terá a variável __name__
com o valor "__main__"
.
Então, a linha:
uvicorn.run(app, host="0.0.0.0", port=8000)
não será executada.
Informação
Para mais informações, consulte a documentação oficial do Python.
Execute seu código com seu depurador¶
Como você está executando o servidor Uvicorn diretamente do seu código, você pode chamar seu programa Python (seu aplicativo FastAPI) diretamente do depurador.
Por exemplo, no Visual Studio Code, você pode:
- Ir para o painel "Debug".
- "Add configuration...".
- Selecionar "Python"
- Executar o depurador com a opção "
Python: Current File (Integrated Terminal)
".
Em seguida, ele iniciará o servidor com seu código FastAPI, parará em seus pontos de interrupção, etc.
Veja como pode parecer:
Se você usar o Pycharm, você pode:
- Abrir o menu "Executar".
- Selecionar a opção "Depurar...".
- Então um menu de contexto aparece.
- Selecionar o arquivo para depurar (neste caso,
main.py
).
Em seguida, ele iniciará o servidor com seu código FastAPI, parará em seus pontos de interrupção, etc.
Veja como pode parecer: