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 요청을 보낼 수도 있다.
반응형
'Language > python' 카테고리의 다른 글
[ Pytorch ] torch 기반의 모델 저장과 불러오기 (0) | 2023.08.15 |
---|---|
[FastAPI] 2. 라우팅 (0) | 2023.07.14 |
[에러] If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0. (0) | 2023.07.11 |
[Python] requirements.txt로 패키지 관리 (0) | 2023.06.29 |
[Python] 파일 확장자명 일괄변경 (0) | 2023.04.27 |