커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
완료를 눌렀을때 num이 1로 변경되지 않습니다
undefined주차
북마크
정*수
댓글
5
추천
0
조회수
13
조회수
13
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.



첫번째 버킷의 완료를 눌렀을 땐 정상적으로 num이 1로 변경되고 db에도 저장되나

그다음 버킷부터는 변경되지 않습니다ㅜㅜ 제대로 돌지 않는거 같아요

bucket_done 과 done_bucket에서 오류가 나고 있는거 같은데 첨부하겠습니다!






from flask import Flask, render_template, request, jsonify

app = Flask(__name__)

from pymongo import MongoClient
client = MongoClient('mongodb+srv://test:sparta@Cluster0.wzuuenf.mongodb.net/Cluster0?retryWrites=true&w=majority')
db = client.dbsparta


@app.route('/')
def home():
    return render_template('index.html')


@app.route("/bucket", methods=["POST"])
def bucket_post():
    bucket_receive = request.form['bucket_give']

    bucket_list = list(db.bucket.find({}, {'_id': False}))
    count = len(bucket_list) + 1

    doc = {
        'num': 0,
        'bucket': bucket_receive,
        'done': 0
    }

    db.bucket.insert_one(doc)

    return jsonify({'msg': '등록 완료!!'})


@app.route("/bucket/done", methods=["POST"])
def bucket_done(): 
    num_receive = request.form['num_give']
    db.bucket.update_one({'num': int(num_receive)}, {'$set': {'done': 1}})
    return jsonify({'msg': '완료!'})

@app.route("/bucket", methods=["GET"])
def bucket_get():

    bucket_list = list(db.bucket.find({}, {'_id': False}))

    return jsonify({'buckets': bucket_list})


if __name__ == '__main__':
    app.run('0.0.0.0', port=2033, debug=True)


$(document).ready(function () {
        show_bucket();
});

function show_bucket() {
    $.ajax({
                type: "GET",
                url: "/bucket",
                data: {},
                success: function (response) {
                    let rows = response['buckets']
                    for(let i =0; i< rows.length; i++){
                        let bucket = rows[i]['bucket']
                        let num = rows[i]['num']
                        let done = rows[i]['done']

                        let temp_html = ``
                        if (done ==0){
                            temp_html = `<li>\n`  +
                                        `<h2>✅` + bucket + `</h2>\n` +
                                        `<button onclick="done_bucket(${num})" type="button" class="btn btn-outline-primary">완료!</button>\n` +
                                        `</li>`
                        } else {
                            temp_html = `<li>\n` +
                                `<h2 class="done">✅`+ bucket+`</h2>\n ` +
                                ` </li>`
                        }
                        $('#bucket-list').append(temp_html)
                    }
                }
            });
        }

function save_bucket() {
    let bucket = $('#bucket').val()


    $.ajax({
        type: "POST",
        url: "/bucket",
        data: {bucket_give: bucket},
        success: function (response) {
            alert(response["msg"])
            window.location.reload()
        }
    });
}

function done_bucket(num) { // 새로운 줄이 생성될 때부터 줄의 번호와 같이 생성되어야 함.
    $.ajax({
        type: "POST",
        url: "/bucket/done",
        // [2GET] 2. 아예 num을 바로 넘겨준다.
        data: {'num_give': num},
        success: function (response) {
            alert(response["msg"])
            window.location.reload() // [2GET] 3. 새로고침
        }
    });
}


취소
 공유
취소
댓글 0
댓글 알림
나의얼굴