반응형

FastAPI 실행 방법 정리

 

글. 수알치 오상문

 

여기서는 기본 unicorn을 이용합니다. (gunicorn 방식도 가능하지만, 여기서는 다루지 않음)

 

테스트 main.py 코드는 아래와 같습니다.

 
# FastAPI main.py
from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def root():
    return {"message": "Hello World"}


if __name__ == "__main__":
    # 내부 실행 사용하지 마시오
    # import uvicorn
    # uvicorn.run("main:app", host="0.0.0.0", port=80, reload=True)  
   
    # 운영 환경에서는 reload 옵션 제거하세요.
    print("RUN Type 1: uvicorn main:app --host 127.0.0.1 --port 80 --reload")  # 기본은 127.0.0.1:8000  
    print("RUN Type 2: uvicorn main:app --host 127.0.0.1 --port 80")
    print("RUN Type 3: [Windows] python -m uvicorn main:app --reload --host 0.0.0.0 --port 80")  
    print("RUN Type 4: [Linux &] python3 -m uvicorn main:app --reload --host 0.0.0.0 --port 80")

 

그리고 "fastapi run", "fastapi dev" 명령도 가능합니다. 이 부분은 끝에서 다시 다룹니다. 

 

[화면] 웹 접속 화면 (127.0.0.1:80 접속 가능한 경우)

 

명령 콘솔 환경에서 실행한 결과는 다음과 같습니다.

 

[기본 실행 결과] Windows cmd 

 

[명령 타입 1 실행 결과] Windows cmd

 

[명령 타입 2 실행 결과] Windows cmd

 

[명렵 타입3 실행 결과] Windows cmd

 

[명렵 타입4 실행 결과] Ubuntu

 

fastapi run vs. dev

 

좀더 간결하게 실행하는 명령도 있습니다. 이 명령은 FastAPI 0.42 버전부터 지원됩니다. 

참고로 소개하는 명령은 main.py를 기준으로 동작하므로 main.py가 아닌 다른 파일이라면 해당 파일을 지정합니다.  

( fastapi dev my_main.py  또는 fastapi run my_main.py )

 

 

fastapi run 명령은 아래 명령과 같습니다. 

> uvicorn main:app

 

fastapi dev 명령은 아래 명령과 같습니다. --reload가 추가된 명령입니다.

> uvicorn main:app --reload

 

 

[화면] fastapi dev 실행 결과
----------------------------------------------------------------------------------------------------------------
   FastAPI   Starting development server 🚀

             Searching for package file structure from directories with __init__.py files
             Importing from C:\project_fastapi\demo
 
    module   🐍 main.py

      code   Importing the FastAPI app object from the module with the following code:

             from main import app

       app   Using import string: main:app

    server   Server started at http://127.0.0.1:8000
    server   Documentation at http://127.0.0.1:8000/docs

       tip   Running in development mode, for production use: fastapi run

             Logs:

      INFO   Will watch for changes in these directories: ['C:\\project_fastapi\\demo']
      INFO   Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
      INFO   Started reloader process [29512] using WatchFiles
      INFO   Started server process [38848]
      INFO   Waiting for application startup.
      INFO   Application startup complete.

------------------------------------------------------------------------------------------------

 

[화면] 접속 127.0.0.1:8000/docs

 

반응형

+ Recent posts