본문 바로가기
Language/python

[FastAPI] 1. 시작하기

by _YUJIN_ 2023. 7. 14.

1. 가상환경 설정 

익숙한 pip으로 가상환경을 설정해줘도 상관없지만, 사용해보지 않은 virtualenv를 활용해보려고 한다. 

1.1. virtualenv를 사용한 개발 환경 구축

#-- fastapi라는 폴더를 만들고 이 폴더 안에 가상환경을 생성 
$ mkdir fastapi && cd fastapi
$ python3 -m venv fastapi_env

 

  •  venv 모듈은 가상 환경을 설치할 폴더명을 인수로 지정 
    > 두번째 인수인 fastapi는 가상환경으로 사용할 폴더명이다. 
    > 생성된 가상 환경 폴더 (fastapi)에는 파이썬 인터프리터가 설치된 lib 폴더와 가상 환경 내에서 상호작용 (가상 환경 활성화 / 비활성화 등)이 필요한 파일을 저장하는 bin 폴더가 있다. 

1.2. 가상환경 활성화 / 비활성화 

#-- 가상환경 활성화
$ source fastapi_env/bin/activate
  • 가상환경이 활성화 되면 아래 그림과 같이 가상환경 폴더명(fastapi)가 프롬프트 앞에 표시된다. 

#-- 가상환경 비활성화
$ deactivate
  • 가상환경이 비활성화되면 아래 그림과 같이 앞에 표시된 가상환경 폴더명이 사라진다. 

1.3. 환경 설치 

필요한 라이브러리를 설치한다. ( fastapi, uvicorn )

명령어 : pip install fastapi uvicorn

2. FastAPI의 새로운 인스턴스 생성

  • fastapi 폴더 내부에 api.py라는 파일을 만들어서 아래의 코드를 작성해준다. 
from fastapi import FastAPI

#-- app 변수에 FastAPI를 초기화해서 라우트(route)를 생성할 수 있다. 
app = FastAPI()

#-- 데코레이터(decorator)를 사용해 처리 유형을 정의하고 라우트가 호출되었을 때 실행할 처리를 함수로 작성.
#-- GET 유형을 요청 받아서 메세지를 반영하는 "/" 라우트를 만들어준다.
@app.get("/")  
async def welcome() -> dict:
    return {
        "message" : "Hello World"
        }

3. 실행 

  • 아까 가상환경에서 설치한 " uvicorn"을 활용해서 애플리케이션을 시작해본다.
  • 실행 인수
    file:instance : FastAPI 인스턴스가 존재하는 파이썬 파일과 FastAPI 인스턴스를 가지고 있는 변수를 지정
    --port PORT : 애플리케이션에 접속할 수 있는 포트번호를 지정
    --reload : 선택적 인수로, 파일이 변경될 때마다 애플리케이션을 재시작한다. 
uvicorn api:app --port 8000 --reload

  • 애플리케이션이 제대로 실행되고 있는지는 다음과 같이 2가지 방법으로 확인할 수 있다. 
    • 위의 터미널 창에 출력된 url 주소로 들어가서 보면 메세지가 웹에 출력된 것을 볼 수 있다. 
    • 새로운 터미널 창에서 curl 명령문을 사용해서 GET 요청을 보낼 수도 있다. 

방법 1. url 주소로 접속해서 실행 확인
방법2. 터미널 창에서 curl 명령문을 사용해서 GET 요청

반응형