1. 환경 설정

1. 디렉토리 생성

FastAPI의 디렉토리 구조 를 참고하여 프로젝트의 사이즈에 따라서 디렉토리 구조를 생성하자. 간단한 실습이 목적이므로 다음과 같은 디렉토리 구조를 생성하자.

  ├── app  # Contains the main application files.
  │   ├── main.py       # fastAPI 어플리케이션 초기 설정
  │   ├── routers
  │   │   ├── __init__.py
  │   │   ├── events.py  # event와 관련된 route 및 endpoint 설정
  │   │   └── users.py  # user과 관련된 route 및 endpoint 설정
  │   ├── models
  │   │   ├── __init__.py
  │   │   ├── events.py  # event의 db 모델 정의
  │   │   └── user.py  # user의 db 모델 정의
  │   ├── database
  │   │   ├── __init__.py
  │   │   └── connection.py          # DB와의 연결을 설정하는 파일
  ├── requirements.txt
  ├── .gitignore
  └── README.md

2. 의존 라이브러리 설치

아래와 같은 명령어를 입력하여 uvicorn, fastapi, pydantic을 설치하자

   > pip install uvicorn fastapi pydantic[email]
  • uvicorn: Python에서 사용되는 고성능 ASGI 서버
  • fastapi: 파이썬 웹 프레임워크
  • pydantic: Python에서 데이터 유효성 검사 및 데이터 설정을 위한 라이브러리

3. Uvicorn을 사용해 서버 실행

uvicorn을 사용해 fastapi 서버를 실행하려면 다음과 같은 명령어를 cmd창에서 입력 해 주어야 한다.

   uvicorn main:app --port 8000 --reload
  • uvicorn : uvicorn 서버를 실행시키는 명령어
  • main:app : 현재 디렉토리 위치에서 실행시킬 모듈명(파일명) 과 이를 돌리는 이름
  • --port : 서버를 돌릴 때 사용할 포트번호
  • --reload : 서버 실행 중 파일이 수정되면 수정내용이 서버에 업데이트 된다는 옵션이다.

혹은 main.py파일에 다음과 같이 함수를 정의하여 파이썬으로 파일이 실행되면 위와 같은 명령어가 실행되게 할 수 있다.

   from fastapi import FastAPI
   
   # FastAPI 객체 생성
   app = FastAPI()
   
   # main이라는 이름의 파일이 직접 실행되는가(다른 모듈에 포함되어 실행되는 것이 아님)
   if __name__=="__main__":
       import uvicorn
       uvicorn.run("main:app", host="127.0.0.1", port=8000, reload=True)

참고: https://medium.com/@amirm.lavasani/how-to-structure-your-fastapi-projects-0219a6600a8f