웹개발종합반 5주차 - [무비스타] - POST연습(좋아요+1) / [무비스타] - POST연습(삭제하기) / [무비스타] 완성본

2022. 1. 4. 11:35코딩공부/스파르타코딩클럽 - 웹개발종합반

[무비스타] - POST연습(좋아요+1)
1) 조회: 영화인 정보 전체를 조회
2) 좋아요: 클라이언트에서 받은 이름(name_give)으로 찾아서 좋아요(like)를 증가 (update)
3) 삭제: 클라이언트에서 받은 이름(name_give)으로 영화인을 찾고, 해당 영화인을 삭제

👉 정리하면, 만들 API 정보는 아래와 같습니다.
 
A. 요청 정보
- 요청 URL= `/api/like` , 요청 방식 = `POST`
- 요청 데이터 : 영화인 이름(name_give)

B. 서버가 제공할 기능 :  영화인 이름(요청 데이터)과 일치하는 영화인 정보의 좋아요 수를 한 개 증가시켜 
데이터베이스에 업데이트하고(Update), 성공했다고 응답 메세지를 보냄 

C. 응답 데이터  : (JSON 형식) 'msg'='좋아요 완료!'

API(app.py)

@app.route('/api/like', methods=['POST'])
def like_star():
    name_receive = request.form['name_give']

    target_star = db.mystar.find_one({'name': name_receive})
    current_like = target_star['like'] #target_like중에서 like만 가져오고싶다

    new_like = current_like + 1

    db.mystar.update_one({'name': name_receive}, {'$set': {'like': new_like}})

    return jsonify({'msg': '좋아요 완료!'})

Client(index.html)

        function likeStar(name) {
            $.ajax({
                type: 'POST',
                url: '/api/like',
                data: {name_give: name},
                success: function (response) {
                    alert(response['msg']);
                    window.location.reload()
                }
            });
        }

 

 

[무비스타] - POST연습(삭제하기)
1. 조회(Read) 기능: 영화인 정보 전체를 조회
2. 좋아요(Update) 기능: 클라이언트에서 받은 이름(name_give)으로 찾아서 좋아요(like)를 증가
3. 삭제(Delete) 기능: 클라이언트에서 받은 이름(name_give)으로 영화인을 찾고, 해당 영화인을 삭제

👉 정리하면, **만들 API 정보**는 아래와 같습니다.
 
 A. 요청 정보
- 요청 URL= `/api/delete` , 요청 방식 = `POST`
- 요청 데이터 : 영화인 이름(name_give)

B. 서버가 제공할 기능 :  영화인 이름(요청 데이터)와 일치하는 영화인 정보를 
데이터베이스에서 삭제(Delete)하고, 성공했다고 응답 메세지를 보냄 

C. 응답 데이터  : (JSON 형식) 'msg'='삭제 완료!'

API(app.py)

@app.route('/api/delete', methods=['POST'])
def delete_star():
    name_receive = request.form['name_give']
    db.mystar.delete_one({'name': name_receive})
    return jsonify({'msg': '삭제 완료!'})

Client(index.html)

        function deleteStar(name) {
            $.ajax({
                type: 'POST',
                url: '/api/delete',
                data: {name_give: name},
                success: function (response) {
                    alert(response['msg']);
                    window.location.reload()
                }
            });
        }

 

[무비스타] 완성본

moviestar.zip
6.49MB