FastAPI 실습(1)
환경 설정
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