Flask란?
Flask는 파이썬에서 사용 가능한 웹 프레임워크이다.
Flask 환경을 통해 '가볍게' 웹을 만들 수 있다.
Flask로 CRUD 구현하기
실제 과제로 구현한 코드와 함께 내용을 확인해보자.
(Full code)
from flask import Flask, jsonify, request
app = Flask(__name__)
menus = [
{"id":1, "name":"Espresso", "price":3800},
{"id":2, "name":"Americano", "price":4000},
{"id":3, "name":"CafeLatte", "price":4500}
]
next_id = len(menus) + 1
# Home Directory
@app.route('/')
def hello_flask():
return "Hello Flask! Ah! Hard!"
# Get /menus | 자료를 가지고 옴 (READ)
@app.route('/menus')
def get_menus():
return jsonify({"menus" : menus})
# POST /menus | 자원 추가 (CREATE)
@app.route('/menus', methods=['POST'])
def post_menu(): # request가 JSON이라고 가정한다.
# 전달받은 자료를 menus 자원에 추가함
global next_id
request_data = request.get_json()
new_menu = {
"id": next_id,
"name": request_data['name'],
'price': request_data['price']
}
next_id += 1
menus.append(new_menu)
return jsonify(new_menu)
@app.route('/menus/<int:id>', methods=['PUT'])
def put_menu(id):
update_data = request.get_json()
for menu in menus:
if menu['id'] == id:
menu['name'] = update_data['name']
menu['price'] = update_data['price']
return jsonify(menu)
return jsonify("Failure! Index Error!")
@app.route('/menus/<int:id>', methods=['DELETE'])
def delete_menu(id):
for i, menu in enumerate(menus):
if menu['id'] == id:
menus.pop(i)
return jsonify(menus)
return jsonify("Failure! Index Error!")
if __name__ == '__main__':
app.run()
목표
우리가 하려는 것은, 메뉴판을 만드는 일이다.
구체적으로는, 클라이언트가 서버에다가 원하는 메뉴를 만들어달라, 지워달라, 변경해달라 요청하면 서버에서 처리하여 다시 클라이언트에게 돌려주는 서비스를 만드는 것이 목표이다.
API 만들기, CRUD란?
즉, 서버와 통신할 수 있는 방법을 우리가 정해줘야 하는 것이다.
즉 데이터를 받아와서 서버에서 처리하고 다시 넘겨주는 일련의 과정을 만들어야 한다. 기본적인 데이터 처리 기능은 줄여서 CRUD라고 표기한다.
- Create : 생성
- Read : 읽기
- Update : 갱신
- Delete : 삭제
JSON이란?
JSON은 자바스크립트의 객체[ 표기법으로, 속성(키)- 값 쌍으로 이루어진 데이터를 표현하기 위한 포맷이다.
JSON 형식은 key, value가 존재할 수 있고, key값이나 문자열은 쌍따옴표를 사용하여 표기해야 한다. 파이썬의 dict와 굉장히 유사한 표기법을 사용한다.
'Archive > 프로그래밍 언어' 카테고리의 다른 글
[Python] Django로 웹페이지 만들기 (1) (0) | 2021.05.11 |
---|---|
[Python] Flask (2) Flask를 DB랑 연동하자! (0) | 2021.05.10 |
[기본이론] defaultdict()의 활용법 (0) | 2021.04.29 |
[자료] Python으로 배우는 자료구조 (4) Heap (0) | 2021.04.21 |
[기본이론] Mutable vs Immutable (0) | 2021.04.21 |