
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
첫번째 버킷의 완료를 눌렀을 땐 정상적으로 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. 새로고침
}
});
}
