Flask(플라스크) - 기본 설명
① Flask-RESTful : Python Flask 프레임워크를 확장해서 제작 된 REST API 작성을 위한 경량화 된 프레임워크 입니다.
② 실무 프로젝트 진행 중에 급하게 REST API 서버 구축이 필요해서 사용 및 운영해 본 결과 너무나 만족스러웠습니다.
③ 아래 예제 소스를 보시면 간단한 코딩으로 쉽게 작성 및 구동 가능하며, ORM 구축 환경을 제공합니다.
④ 문서 하단에서 예제 소스코드를 다운로드 가능합니다. 또한, 추가적인 기능 작성은 공식 레퍼런스 문서를 참고하세요.
Flask(플라스크) - RestFul API 소스 예제 및 실행 화면
기본 소스- GET, POST, PUT, DELETE 메소드 구현
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | from flask import Flask from flask_restful import reqparse, abort, Api, Resource #Flask 인스턴스 생성 app = Flask(__name__) api = Api(app) #할일 정의 TODOS = { 'todo1': {'task': 'Make Money'}, 'todo2': {'task': 'Play PS4'}, 'todo3': {'task': 'Study!'}, } #예외 처리 def abort_if_todo_doesnt_exist(todo_id): if todo_id not in TODOS: abort(404, message="Todo {} doesn't exist".format(todo_id)) parser = reqparse.RequestParser() parser.add_argument('task') # 할일(Todo) # Get, Delete, Put 정의 class Todo(Resource): def get(self, todo_id): abort_if_todo_doesnt_exist(todo_id) return TODOS[todo_id] def delete(self, todo_id): abort_if_todo_doesnt_exist(todo_id) del TODOS[todo_id] return '', 204 def put(self, todo_id): args = parser.parse_args() task = {'task': args['task']} TODOS[todo_id] = task return task, 201 # 할일 리스트(Todos) # Get, POST 정의 class TodoList(Resource): def get(self): return TODOS def post(self): args = parser.parse_args() todo_id = 'todo%d' % (len(TODOS) + 1) TODOS[todo_id] = {'task': args['task']} return TODOS[todo_id], 201 ## ## URL Router에 맵핑한다.(Rest URL정의) ## api.add_resource(TodoList, '/todos/') api.add_resource(Todo, '/todos/<string:todo_id>') #서버 실행 if __name__ == '__main__': app.run(debug=True) | cs |
실행 화면
- ATOM 에디터에서 구현 및 서버 실행
Flask-Restful Framework 에 대한 Reference 문서는 아래 URL을 참고하세요.
- https://flask-restful.readthedocs.io/en/latest/
- https://flask-restful.readthedocs.io/en/latest/
'웹 백엔드 > Django & Flask' 카테고리의 다른 글
Django(장고) - 로깅(Logging) 설정 및 DB SQL 쿼리(Query) 확인 (0) | 2019.02.14 |
---|---|
Flask(플라스크) - 파이썬 Flask 기본 템플릿(template) 예제 및 소스파일 (1) | 2018.06.22 |
Flask(플라스크) - 파이썬 Flask 파일 업로드(file upload) 예제 및 소스파일 (7) | 2018.06.20 |
Django(장고) - 로깅(Logging) 설정 및 로그(Log)파일로 저장 (0) | 2017.10.09 |
Django(장고) - 에러 페이지 처리(커스터마이징 404, 500 외) (1) | 2017.09.08 |