본문 바로가기

프로그래머스 데브 코스/TIL

[6기] 프로그래머스 인공지능 데브코스 11일차 TIL

0911

4주차-Day1) Flask를 Flask 답게

메뉴 관리 CRUD 구현하기

from flask import Flask, jsonify, request

app = Flask(__name__)

menus = [
    {"id": 1, "name": "Espresso", "price":3800},
    {"id": 2, "name": "Americano", "price":4100},
    {"id": 3, "name": "CafeLatte", "price":3600}
]

@app.route('/')
def hello_flask():
    return "Hello World!"

# GET /menus | 자료를 가지고 온다
@app.route('/menus')
def get_menus():
    return jsonify({"menus" : menus})


# POST /menus | 자료를 자원에 추가한다
@app.route('/menus', methods=['POST'])
def create_menu(): # Request가 JSON이라고 가정
    #  전달받은 자료를 menus 자원에 추가
    request_date = request.get_json() # {"name" : ..., "price" : ...}
    new_menu = {
        "id" : 4,
        "name" : request_date['name'],
        "price" : request_date['price']
    }
    menus.append(new_menu)
    return jsonify(new_menu)


# menu에 있는 해당 id 값이 menu에 적재된다
@app.route('/menus/<int:id>', methods=['PUT'])
def update_menu(id):
    menus.append(menus[id-1])
    return jsonify(menus)

# menu에 있는 해당 id 값이 menu에서 삭제된
@app.route('/menus/<int:id>', methods=['DELETE'])
ddef delete_men(id):
    for i in range(len(menus)):
        if menus[i].get('id') == id:
            menus.pop(i)
    return jsonify(menus)


if __name__ == '__main__':
    app.run()

ID 값 자연스럽게 증가


from flask import Flask, jsonify, request

app = Flask(__name__)

menus = [
    {"id": 1, "name": "Espresso", "price":3800},
    {"id": 2, "name": "Americano", "price":4100},
    {"id": 3, "name": "CafeLatte", "price":3600}
]

@app.route('/')
def hello_flask():
    return "Hello World!"

# GET /menus | 자료를 가지고 온다
@app.route('/menus')
def get_menus():
    return jsonify({"menus" : menus})


# POST /menus | 자료를 자원에 추가한다
@app.route('/menus', methods=['POST'])
def create_menu(): # Request가 JSON이라고 가정
    #  전달받은 자료를 menus 자원에 추가
    request_date = request.get_json() # {"name" : ..., "price" : ...}
    new_menu = {
        "id" : len(menus)+1,   # 메뉴 목록 개수+1 번째로 새로운 메뉴 추가 
        "name" : request_date['name'],
        "price" : request_date['price']
    }
    menus.append(new_menu)
    return jsonify(new_menu)


@app.route('/menus/<int:id>', methods=['PUT'])
def update_menu(id):
    menus.append(menus[id-1])
    return jsonify(menus)


@app.route('/menus/<int:id>', methods=['DELETE'])
def delete_men(id):
    menus.pop(id-1)
    return jsonify(menus)


if __name__ == '__main__':
    app.run()