개발일기

Python - FastAPI 프레임워크란? 본문

프로그래밍 언어/Python

Python - FastAPI 프레임워크란?

Flashback 2021. 12. 1. 15:40
728x90
반응형

FastAPI란?

파이썬 3.6 버전부터 제공되는 트랜디하고 높은 성능을 가진 파이썬 프레임워크. FastAPI라는 이름처럼 빠르게 개발을 진행할 수 있다. 별도의 구성이나 설치의 필요없이 바로 사용할 수 있는 비동기적인 특성을 가진 프레임워크이기 때문이다.

 

  • 파이썬 3.6버전부터 제공되는 트렌디하고 높은 성능을 가진 파이썬 프레임워크
  • FastAPI라는 이름처럼 빠르게 개발 진행 가능
  • 별도의 구성이나 설치 필요없이 바로 사용 가능
  • 비동기적인 특성
  • 다른 파이썬 프레임워크와 비교했을 때 학습하여 적용하는 난이도가 낮음
  • Node.js와 비교될만큼 가볍고 빠른 프레임워크
  • 비교적 최근에 발표된 프레임워크이기 때문에 관련 자료가 부족

FastAPI 설치

pip3 install fastapi
# FastAPI 사용을 위한 설치
pip3 install uvicorn
# 파이썬 서버실행기인 uvicorn 설치
# 순수 파이썬으로 작성된 uvicorn이 설치된다

pip3 install 'uvicorn[standard]'
# Python과 C / C++ 로 작성된 uvicorn이 설치된다

uvicorn을 통해 파이썬 서버가 실행되기에 필수적으로 설치해줘야 한다.

 

FastAPI모듈을 가져온 후, URL이 '/'와 '/something'일 때 실행할 함수에 대해 간단하게 정의한다.

# main.py

from fastapi import FastAPI # FastAPI 모듈 가져오기

app = FastAPI() # 객체 생성

@app.get("/") # Route Path
def test_index():
	
    # Json 타입으로 값 반환
    return {
	    "Python": "Framework",
	}
    
@app.get("/something")
def something():
    return {
        "Something": "Page",
    }

 

uvicorn명령어를 통해 파이썬 서버를 실행시킨다. 해당 명령을 실행할 때, main.py 파일이 존재하는 경로에서 해당 명령어를 실행하여야 한다.

uvicorn main:app --reload --port 8000
# uvicorn을 통해 실행시킨다
  • uvicorn : 파이썬 서버 실행을 위해 필요한 기본 명령어
  • main : 실행할 초기 파이썬 파일 이름. 위의 소스코드를 test.py 파일에 작성하였을 경우, test:app으로 변경하여 실행
  • app : FastAPI() 모듈을 할당한 객체명을 뜻한다. practice = FastAPI() 일 경우, main.practice로 변경하여 실행
  • reload : 소스코드가 변경되었을 때, 서버를 자동으로 재시작해주는 옵션이다. 개발단계일 때 유용하게 사용가능
  • port : 해당 포트번호를 통해 서버를 실행시켜주는 옵션. 포트 옵션을 생략시 자동으로 8000번 포트가 할당

 

ex) 실행파일명이 cake.py, FastAPI() 모듈이 할당된 객체명이 serum일 경우 ( serum = FastAPI() )

uvicorn cake:serum --reload
# 파일명과 객체명을 변경하여 실행
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [3185] using watchgod
INFO:     Started server process [3187]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
...
...

정상적으로 실행됬을 경우 터미널에서 위의 내용을 확인할 수 있다.

 

localhost:8000
{"Python":"Framework"}

localhost:8000/something
{"Something":"Page"}

라우트 url을 통해 결과값을 확인하면 반환된 값들이 JSON 형식으로 나타나는 것을 확인할 수 있다.


FastAPI 부가적인 문서기능

FastAPI는 작성된 API들을 웹 상에서 바로 테스트할 수 있는 기능을 제공한다. /docs url을 통해 확인할 수 있다.

/docs - Try it out을 클릭하여 api 테스트

redoc을 통해 api문서를 확인할 수 있다.

/redoc

728x90
반응형

'프로그래밍 언어 > Python' 카테고리의 다른 글

Python - Redis 연결 ( FastAPI )  (0) 2021.12.07
Python - FastAPI DB Connection ( SQLAlchemy )  (0) 2021.12.03
Python - Type Hinting  (0) 2021.12.01
Python - for 반복문과 enumerate 함수  (0) 2021.11.26
Python - 함수정의  (0) 2021.11.25
Comments