Ana içeriğe geç

Debugging

🌐 Translation by AI and humans

This translation was made by AI guided by humans. 🤝

It could have mistakes of misunderstanding the original meaning, or looking unnatural, etc. 🤖

You can improve this translation by helping us guide the AI LLM better.

English version

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:

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)

__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.

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: