[Python] Fastapi 시작하기

haeun·2023년 11월 22일
0

Python

목록 보기
3/5

Fastapi는 현대적이고 빠르며, 파이썬 표준 타입 힌트에 기초한 Python3.6+의 API를 빌드하기 위한 웹 프레임워크이다.


1. fastapi의 특징

fastapi 공식 홈페이지의 설명을 빌리자면,
성능이 빠르고, 버그가 적고, 직관적이며, 사용이 쉽고, 코드가 짧고, 표준 기반이라는 특징을 지니고 있다. 그 중 가장 큰 장점은 개방형 표준 기반(마치 Postman) 클라이언트가 내장되어있다는 점이다.



2. 가상환경 준비

Cmder에서 가상환경 디렉토리를 생성한다.
원하는 경로에서 가상환경을 생성한 후, 다른 탭에서 activate.bat를 실행한다.

python -m venv 가상환경이름
가상환경이름\Scripts\activate.bat

그리고, 작업할 dir로 이동한 후 code . 명령어를 사용하면 바로 실행할 수 있다.



3. fastapi 설치

cmder로 다시 돌아와서 fastapi 에 따라 api와 unicorn 서버를 설치하기 위해 아래 명령어를 실행한다.

pip install fastapi
python.exe -m pip install --upgrade pip
pip install "uvicorn[standard]"
pip install python-multipart > 멀티미디어

uvicorn은 웹서버를 띄워주는 역할을 한다.



4. 예제 파일 만들기

from typing import Union

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
    return {"item_id": item_id, "q": q}

fastapi 데코레이터 @app.get()은 앤드포인트 함수를 정의하는데 사용된다. 이 앤드포인트 함수는 URL 경로 또는 /items/{item_id}에 대한 요청을 처리한다.

  • 첫번째 인수 path : item_id는 url경로를 나타낸다.
  • 두번째 인수 response_model : 반환값의 형식을 지정하는데 사용된다.
  • 세번째 인수 query_params : 는 쿼리 파라미터를 나타내는데 사용된다.

q는 변수이고 타입은 str, none 둘다 가능하고 기본은 none이다. 문자열과 none도 허용한다는 뜻

item_idint를 명시하고 있는데 이것은 fastapi가 Pydantic을 지원하기 때문이다.
Pydantic은 Python Type Hint를 사용한 데이터 유효성 검사 및 설정관리를 의미한다. 따라서, 약속되지 않은 값이 들어가지 않는 것을 방지한다.



5. 서버에 올리기

서버를 띄우는 방법
uvicorn main:app --reload

실시간으로 수정사항을 리로드하려면 아래 명령어를 cmder에 날린다.

uvicorn main:app --port=9000 --reload

profile
환영합니다 :) 이 곳은 개인 공부를 정리하고 창의적으로 활용하기 위한 제 2의 전두엽으로 활용되고 있으며, 오류에 대한 피드백은 댓글로 남겨주시면 감사하겠습니다.

0개의 댓글