Flask는 Micro web application framework로 파이썬의 웹프레임워크중 Django와 더불어 가장 많이 쓰이는 웹 애플리케이션 프레임워크입니다.
Django와 Flask의 차이점은 Django는 full stack web framework로 모든 기능이 이미 준비되어있고 개발자가 필요에 따라 사용하면 되지만, Flask는 개발자가 기능 하나 하나 구현해야 한다는 점에서 Django 보다 자유도가 높습니다.
미니콘다가 설치되어있다는 가정하에 진행하겠습니다.
pip install flask
app.py
를 만들고 다음과 같이 작성합니다.
from flask import Flask
app = Flask(__name__)
@app.route("/ping", methods = ['GET']
def ping():
return "pong"
한줄씩 뜯어보기
from flask import Flask
flask를 사용하기 위해서 flask 패키지에서 Flask 클래스를 불러옵니다.
app = Flask(__name__)
Flask를 객체화 시켜서 app이라는 변수에 저장했습니다.
__name__
은 import한 모듈 이름이 들어갑니다.
만약 if __name__ == "__main__"
이렇게 사용하면 현재 모듈이 주 프로그램이라는 뜻입니다.
@app.route("/ping", methods = ['GET']
Flask에서는 route 데코레이터를 사용하여 엔드포인트를 등록합니다. 여기서는
ping이라는 고유 주소를 가지며, HTTP 메소드는 GET을 사용했습니다.
def ping():
return "pong"
ping함수는 API동작 테스트를 위한 함수입니다.
route데코레이터로 등록한 엔드포인트로 클라이언트가 요청하면
pong이라는 응답을 보냅니다.
터미널에 다음과 같이 입력하여 서버를 구동합니다.
FLASK_APP=app.py FLASK_DEBUG=1 flask run
그리고 또 다른 터미널을 열고 다음과 같이 ping
엔드포인트로 서버에 요청을 보냅니다.
http -v GET http://localhost:5000/ping
그러면 아래와 같이 서버로부터 pong
이라는 응답을 받을 수 있습니다.