* Update all
* 🎨 Auto format
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2.7 KiB
Debugging
Visual Studio Code veya PyCharm gibi editörünüzde debugger'ı bağlayabilirsiniz.
uvicorn'ı Çağırma
FastAPI uygulamanızda uvicorn'ı import edip doğrudan çalıştırın:
{* ../../docs_src/debugging/tutorial001_py310.py hl[1,15] *}
__name__ == "__main__" Hakkında
__name__ == "__main__" ifadesinin temel amacı, dosyanız şu şekilde çağrıldığında çalışacak:
$ python myapp.py
ancak başka bir dosya onu import ettiğinde çalışmayacak bir kod bölümüne sahip olmaktır, örneğin:
from myapp import app
Daha fazla detay
Dosyanızın adının myapp.py olduğunu varsayalım.
Şu şekilde çalıştırırsanız:
$ python myapp.py
Python tarafından otomatik oluşturulan, dosyanızın içindeki __name__ adlı dahili değişkenin değeri "__main__" string'i olur.
Dolayısıyla şu bölüm:
uvicorn.run(app, host="0.0.0.0", port=8000)
çalışır.
Ancak modülü (dosyayı) import ederseniz bu gerçekleşmez.
Yani örneğin importer.py adında başka bir dosyanız var ve içinde şunlar bulunuyorsa:
from myapp import app
# Some more code
bu durumda myapp.py içindeki otomatik oluşturulan __name__ değişkeni "__main__" değerine sahip olmaz.
Bu yüzden şu satır:
uvicorn.run(app, host="0.0.0.0", port=8000)
çalıştırılmaz.
/// info | Bilgi
Daha fazla bilgi için resmi Python dokümantasyonuna bakın.
///
Kodunuzu Debugger ile Çalıştırma
Uvicorn server'ını doğrudan kodunuzdan çalıştırdığınız için, Python programınızı (FastAPI uygulamanızı) debugger'dan doğrudan başlatabilirsiniz.
Örneğin Visual Studio Code'da şunları yapabilirsiniz:
- "Debug" paneline gidin.
- "Add configuration..." seçin.
- "Python" seçin
- "
Python: Current File (Integrated Terminal)" seçeneğiyle debugger'ı çalıştırın.
Böylece server, FastAPI kodunuzla başlar; breakpoint'lerinizde durur vb.
Aşağıdaki gibi görünebilir:
PyCharm kullanıyorsanız şunları yapabilirsiniz:
- "Run" menüsünü açın.
- "Debug..." seçeneğini seçin.
- Bir context menü açılır.
- Debug edilecek dosyayı seçin (bu örnekte
main.py).
Böylece server, FastAPI kodunuzla başlar; breakpoint'lerinizde durur vb.
Aşağıdaki gibi görünebilir: