flask
Flask는 파이썬으로 웹을 구현할때 사용 되는 프레임 워크로서 다른 python 웹 프레임워크들과 비교해 봤을 때 상대적으로 가볍다. 하지만 그 가벼움에 비해 사용되는 기능이 많아서 개발을 입문하는 사람들도 좋고 대규모 시스템에서 사용이 되기때문에 잘 만들어진 FramWork이다.
설치
pip install flasck
아무런 오류가 나지 않으면 성공!!
ping endpoint 구현하기
ping endpoint는 ping endpoint를 호출하면 pong이라고 응답하는 것이다.
주로 API서버가 현재 사용 중인지 아닌지를 판별한다. -> endpoing healthcheck라고 한다.
api통신을 테스트 하기 위해 flask라는 폴더를 만들어 주었고 그 안에 app.py를 만들어서 적어 주었다.
- from flask import Flask : flask를 사용하기 위해서 Flask를 임포트 해주었다.
- app = Flask(name): import한 Flask class를 객체화 시켜서 app이라는 변수에 저장을 하였따. 이 app변수가 바로 API 애플리케이션이다.
- @app.route("/ping", methods=['GET']) : ping 함수를 flask의 route 데코레이터를 사용하여 엔드 포인트를 등록한다. 그 다음에 나오는 ping 함수를 엔드포인트 함수로 등록하였으며, 고유주소는 "ping"이며 HTTP 메소드(method)sms GET으로 설정되어 등록되어 있다.
- def ping(): ping 함수를 정의하였다. route데코레이터를 통해서 엔드포인트로 등록된 함수이다. ping endpoint는 단순히 "pong" endpoint 만을 리턴한다.
API 실행하기
FLASK_APP = app.py FLASK_DEBUG=1 flask run
- FLASK_APP 환경변수에는 실행시켜주는 파일을 적어주면 된다.
- FLASK_DEBUG =1 디버그 모드가 활성화 되면서, 코드가 수정되었을 때 flask 애프리케이션을 직접 재시작할 필요 없이 자동으로 반영되도록하는 모드이다.
성공!!
- Running on http://127.0.0.1:5000/ 이게 API주소이다.
(django는 8000port를 주로 사용했는데 flask는 5000port이다.)
httpie 통신으로 해보면
http -v GET http://localhost:5000/ping
이것을 사용해서 api 통신을 해보게 되면!
......?? 먼가 자주본 error... syntax
app.py에 돌아가서 보니 return 값을 주지 않았다.
다시 적어 주고 난 후 실행을 해보면!
200ok 출력 완료!!
깔끔한 파이썬 탄탄한 백엔드 - 송은우...GOOD