내일배움단_메이킹챌린지_6기_(5)

#코딩 개발일지 시작의 한마디

  • 리뷰(댓글) 구현

#개발 업무내용
[오늘의 목표]
1. 리뷰(댓글) 기능 구현

[토의내용]
1. 레시피를 유저가 직접 추가하는 기능은 빼고 보고싶은 레시피를 추가해달라고 요청하는 기능으로 변경

#업무 중 이슈/고민 .. 그리고 해결한 내용

상세레시피 페이지에 들어와서 맨 밑에 리뷰를 달수있는 기능 구현!

app.py

@app.route("/review", methods=["POST"])
def add_review():
    try:
        recipe_receive = request.form["recipe_give"]
        comment_receive = request.form["comment_give"]
        if session["user_id"] is None:
            return jsonify({"msg": "로그인이 필요합니다."})
        else:
            doc = {
                "user_id": session["user_id"],
                "name": recipe_receive,
                "comment": comment_receive,
                "datetime": time.strftime("%Y-%m-%d %H:%M"),
            }

            db.reviews.insert_one(doc)
    except Exception:
        return jsonify({"msg": "로그인이 필요합니다."})

    return jsonify({"user_id": session["user_id"]})


@app.route("/review/show", methods=["POST"])
def read_reviews():
    name_receive = request.form["name_give"]
    reviews = list(db.reviews.find({"name": name_receive}, {"_id": False}))
    return jsonify({"all_reviews": reviews})
recipe.js

function review_show(name){
    $.ajax({
        type: "POST",
        url: "/review/show",
        data: {name_give:name},
        success: function (response) {
            let reviews = response['all_reviews']
            for (let i = 0; i < reviews.length; i++) {
                let comment = reviews[i]['comment']
                let user_id = reviews[i]['user_id']
                let datetime = reviews[i]['datetime']
                let review_html = `<li> ${comment} / ${user_id} / ${datetime} </li>`
                
                $('#review-list').append(review_html)
            }
        }
    })
}

function add_review(name){
    let comment = $('#new-review').val();

    $.ajax({
        type: "POST",
        url: "/review",
        data: {recipe_give:name, comment_give:comment},
        success: function (response) {
            let user_id = response['user_id']
            let review_html = `<li> ${comment} / ${user_id} / ${date} </li>`
            if (user_id == undefined) {
                alert('로그인 후 이용해주세요.')
            } else{
                $('#review-list').append(review_html)
                alert('추가 완료')
            }
        }
    })
}

#To-do List
레시피 요청 기능 구현

좋은 웹페이지 즐겨찾기