본문 바로가기
IT/Python

FastAPI 란? (예제 코드 포함) (with. uvicorn)

by 성준하이 2024. 6. 30.
반응형

fastAPI란?
Ptyhon 3.6부터 제공되는 트랜디하고 높은 성능을 가진 Python FrameWork

 

공식 홈페이지는 아래와 같다.

https://fastapi.tiangolo.com/ko/

 

FastAPI

FastAPI framework, high performance, easy to learn, fast to code, ready for production

fastapi.tiangolo.com

홈페이지에서 설명하는 특징은 아래와같다.

빠름: (Starlette과 Pydantic 덕분에) NodeJS 및 Go와 대등할 정도로 매우 높은 성능. 사용 가능한 가장 빠른 파이썬 프레임워크 중 하나.
빠른 코드 작성: 약 200%에서 300%까지 기능 개발 속도 증가. *

적은 버그: 사람(개발자)에 의한 에러 약 40% 감소. *

직관적: 훌륭한 편집기 지원. 모든 곳에서 자동완성. 적은 디버깅 시간.

쉬움: 쉽게 사용하고 배우도록 설계. 적은 문서 읽기 시간.

짧음: 코드 중복 최소화. 각 매개변수 선언의 여러 기능. 적은 버그.

견고함: 준비된 프로덕션 용 코드를 얻으십시오. 자동 대화형 문서와 함께.

표준 기반: API에 대한 (완전히 호환되는) 개방형 표준 기반: OpenAPI (이전에 Swagger로 알려졌던) 및 JSON 스키마.


기존에 존재하고 널리 알려진 Python FrameWork는 Django, Flask이다.

하지만 위와 같은 특징으로 새롭게 생겨나게 되었다.

 

사용법

 

사용법은 간단하다.

  • 설치
- fastapi 설치
pip3 install fastapi

- uvicorn 설치
pip3 install uvicorn
pip3 install uvicorn[standard]

참고로 uvicorn 은 async/await을 기반한 비동기 프로그래밍 지원, 퍼포먼스가 가장 좋다고 알려진 ASGI이다.(실행 결과를 보기 위해 설치한것이므로 필수는 아님)

그리고 main.py 파일을 만들어서 아래와 같이 스크립트를 써준다.

from fastapi import FastAPI  # FastAPI import

app = FastAPI()

@app.get("/")
def printHello():
     return "Hello World"

@app.get("/json")
def printJson():
     return {
          "Number" : 12345
     }
    

 

그리고 실행은 터미널에서 

uvicorn main:app --reload --host=localhost --port=80

를 해주면 

 

localhost:80 으로 들어가면 아래와 같이 출력이 된다.

 

반응형

댓글