30 Wed
TIL
[ํ๋ก๊ทธ๋๋จธ์ค AI ์ค์ฟจ 1๊ธฐ] 4์ฃผ์ฐจ DAY 1
DAY 1 ์ค์ต
flask์์ CRUD ๊ตฌํํ๊ธฐ
from flask import Flask, jsonify, request
from queue import PriorityQueue
app = Flask(__name__)
menus = [
{"id":1, "name":"Espresso", "price":3800},
{"id":2, "name":"Americano", "price":4100},
{"id":3, "name":"CafeLatte", "price":4600},
]
id_list = PriorityQueue()
for available_id in range(4, 10000): id_list.put(available_id)
# @ = python decorator
# => ๋ค์ ์ฃผ์๋ฅผ ์
๋ ฅ๋ฐ์์ ๋ ์๋ ํจ์๋ฅผ ์คํํ๋ผ๋ ๋ป
@app.route('/')
def hello_flask():
return "Hello World!"
# GET /menus | ์๋ฃ๋ฅผ ๊ฐ์ง๊ณ ์จ๋ค.
@app.route('/menus') # GET์ methods ์๋ต ๊ฐ๋ฅ
def get_menus():
return jsonify({"menus" : menus})
# POST /menus | ์๋ฃ๋ฅผ ์์์ ์ถ๊ฐํ๋ค.
@app.route('/menus', methods=['POST'])
def create_menu():
# ์ ๋ฌ ๋ฐ์ ์๋ฃ๋ฅผ menus ์์์ ์ถ๊ฐ
# request๊ฐ JSON์ด๋ผ๊ณ ๊ฐ์
request_data = request.get_json() # {"name" : ..., "price" : ...}
using_id = id_list.get()
new_menu = {
"id" : using_id,
"name" : request_data['name'],
"price" : request_data['price'],
}
menus.append(new_menu)
return jsonify(new_menu)
@app.route('/menus/<int:id>', methods=['PUT'])
def update_menu(id):
for idx, menu in enumerate(menus):
if id in menu.values():
request_data = request.get_json()
menus[id-1]["name"] = request_data['name']
menus[id-1]["price"] = request_data['price']
return jsonify(menus[id-1])
return "not existed id"
@app.route('/menus/<int:id>', methods=['DELETE'])
def delete_menu(id):
for idx, menu in enumerate(menus):
if id in menu.values():
id_list.put(menus[idx]["id"])
menus.pop(idx)
return "delete successfully"
return "not existed id"
if __name__ == '__main__':
app.run()Last updated