Flask-RESTful 라이브러리에는 Output Fields 라는 기능을 제공하여 response를 만드는 것에 대한 편의를 제공하고 있다. API의 response로는 `application/json`포맷을 자주 사용한다. 일단 flask의 기능을 사용한다고 하면, dictionary를 `jsonify` 함수의 인자로 넣어주면 적절한 response 객체가 만들어지긴 한다. (참고: Flask-RESTful Resource에서는 그냥 dictionary를 return 해도 json 포맷으로 response를 준다.) 그러나 출력하고자 하는 것을 dictionary로 만드는 것부터가 일단 일이다. flask 환경에서는 SQLAlchemy를 이용하는 경우가 많다. 이 때, SQLAlchemy를 어떻게 ..
지금 개발 중인 프로젝트에서는 웹 서버와 API 서버가 분리되어 있다. 웹 서버에서는 페이지마다 필요한 데이터들을 API 서버에 요청을 보내 받아와 사용자가 접근하고자 하는 뷰를 렌더링한다. 이에 따라 API 서버에서는 OAuth 기능이 필연적으로 필요하다. 웹 서버와 API 서버 둘 다 flask로 구현되어 있기 때문에 API 서버에서는 flask와 연동이 잘 되는 OAuth 2.0을 지원하는 라이브러리를 찾았고, Flask-OAuthlib를 사용하고 있다. Flask-OAuthlib를 이용하여 OAuth 2.0을 지원하도록 하는 작업은 다음 링크를 참고하자. 차후 가능하면 추가로 블로깅을 할 생각은 있으나 그게 언제가 될지는.... 웹 서버와 API 서버의 연동을 설명하면 다음과 같다. 가장 우선 로..
파이썬에서는 `raise` statement를 이용하여 예외를 던질 수 있다. 예를 들면 `raise KeyError` 와 같은 식이다. 이렇게 raise한 exception은 인스턴스가 만들어지면서 던져지게 된다. flask에서는 `errorhandler` 데코레이터를 이용하여 에러 핸들러를 등록할 수 있도록 하고, route 함수에서 예외가 raise 되었을 때 등록된 에러 핸들러들 중에 적합한 핸들러가 있는지 찾아 해당 핸들러 루틴을 실행하도록 되어 있다. (Flask 클래스의 handle_http_exception 메소드 참고) flask 문서에서 소개되는 방법은 숫자로만 등록하는 예제를 보여준다. 흔한 에러 코드 400, 401, 404와 같은 것들이 각각 한 가지의 메세지만 전달하는 경우에는 ..
- Total
- Today
- Yesterday