๋๋ฒ๊น ¶
์๋ฅผ ๋ค๋ฉด Visual Studio Code ๋๋ PyCharm์ ์ฌ์ฉํ์ฌ ํธ์ง๊ธฐ์์ ๋๋ฒ๊ฑฐ๋ฅผ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
uvicorn
ํธ์ถ¶
FastAPI ์ ํ๋ฆฌ์ผ์ด์
์์ uvicorn
์ ์ง์ ์ํฌํธํ์ฌ ์คํํฉ๋๋ค
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__"
์ ๋ํ์ฌ¶
__name__ == "__main__"
์ ์ฃผ์ ๋ชฉ์ ์ ๋ค์๊ณผ ๊ฐ์ด ํ์ผ์ด ํธ์ถ๋ ๋ ์คํ๋๋ ์ผ๋ถ ์ฝ๋๋ฅผ ๊ฐ๋ ๊ฒ์
๋๋ค.
$ python myapp.py
๊ทธ๋ฌ๋ ๋ค์๊ณผ ๊ฐ์ด ๋ค๋ฅธ ํ์ผ์ ๊ฐ์ ธ์ฌ ๋๋ ํธ์ถ๋์ง ์์ต๋๋ค.
from myapp import app
์ถ๊ฐ ์ธ๋ถ์ฌํญ¶
ํ์ผ ์ด๋ฆ์ด myapp.py
๋ผ๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ์คํํ๋ฉด
$ python myapp.py
Python์ ์ํด ์๋์ผ๋ก ์์ฑ๋ ํ์ผ์ ๋ด๋ถ ๋ณ์ __name__
์ ๋ฌธ์์ด "__main__"
์ ๊ฐ์ผ๋ก ๊ฐ๊ฒ ๋ฉ๋๋ค.
๋ฐ๋ผ์ ์น์
uvicorn.run(app, host="0.0.0.0", port=8000)
์ด ์คํ๋ฉ๋๋ค.
ํด๋น ๋ชจ๋(ํ์ผ)์ ๊ฐ์ ธ์ค๋ฉด ์ด๋ฐ ์ผ์ด ๋ฐ์ํ์ง ์์ต๋๋ค
๊ทธ๋์ ๋ค์๊ณผ ๊ฐ์ ๋ค๋ฅธ ํ์ผ importer.py
๊ฐ ์๋ ๊ฒฝ์ฐ:
from myapp import app
# Some more code
์ด ๊ฒฝ์ฐ myapp.py
๋ด๋ถ์ ์๋ ๋ณ์์๋ ๊ฐ์ด "__main__"
์ธ ๋ณ์ __name__
์ด ์์ต๋๋ค.
๋ฐ๋ผ์ ๋ค์ ํ
uvicorn.run(app, host="0.0.0.0", port=8000)
์ ์คํ๋์ง ์์ต๋๋ค.
์ ๋ณด
์์ธํ ๋ด์ฉ์ ๊ณต์ Python ๋ฌธ์๋ฅผ ํ์ธํ์ธ์
๋๋ฒ๊ฑฐ๋ก ์ฝ๋ ์คํ¶
์ฝ๋์์ ์ง์ Uvicorn ์๋ฒ๋ฅผ ์คํํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ฒ๊ฑฐ์์ ์ง์ Python ํ๋ก๊ทธ๋จ(FastAPI ์ ํ๋ฆฌ์ผ์ด์ )์ ํธ์ถํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด Visual Studio Code์์ ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
- "Debug" ํจ๋๋ก ์ด๋ํฉ๋๋ค.
- "Add configuration...".
- "Python"์ ์ ํํฉ๋๋ค.
- "
Python: Current File (Integrated Terminal)
" ์ต์ ์ผ๋ก ๋๋ฒ๊ฑฐ๋ฅผ ์คํํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ FastAPI ์ฝ๋๋ก ์๋ฒ๋ฅผ ์์ํ๊ณ ์ค๋จ์ ๋ฑ์์ ์ค์งํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ํ์๋ฉ๋๋ค.
Pycharm์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ค์์ ์ํํ ์ ์์ต๋๋ค
- "Run" ๋ฉ๋ด๋ฅผ ์ฝ๋๋ค
- "Debug..." ์ต์ ์ ์ ํํฉ๋๋ค.
- ๊ทธ๋ฌ๋ฉด ์ํฉ์ ๋ง๋ ๋ฉ๋ด๊ฐ ๋ํ๋ฉ๋๋ค.
- ๋๋ฒ๊ทธํ ํ์ผ์ ์ ํํฉ๋๋ค(์ด ๊ฒฝ์ฐ
main.py
).
๊ทธ๋ฐ ๋ค์ FastAPI ์ฝ๋๋ก ์๋ฒ๋ฅผ ์์ํ๊ณ ์ค๋จ์ ๋ฑ์์ ์ค์งํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด ํ์๋ฉ๋๋ค.