카테고리 없음

프로젝트 : 01. 모두의책리뷰(bookreview) - GET 연습

usop 2022. 6. 8. 10:11

GET은 우리가 DB에 받아놓은 데이터들을 가져와서 뿌려주는 작업이기 때문에 POST 보다 간단하다

 

먼저 app.py 를 보자

@app.route('/review', methods=['GET'])
def read_reviews():
    reviews = list(db.bookreview.find({},{'_id':False}))
    return jsonify({'all_reviews': reviews})

db.bookreview에서 find를 통해 데이터를 찾아 가져오면 된다.

우리는 db에 있는 내용만 가져오면 된다. 그래서 find({}) 와 _id:False 만 해주면된다.

그런후 return 문에 reviews를 all_reviews에 담아서 보냈다.

 

app.py는 다 되었으니 index.html을 보자

 

showReview() 함수안에 GET요청을 담았다.

showReview는 POST 때와는 다르게 페이지를 열면 바로 실행되게 설정을 해주어야 우리가 적은 리뷰들이 출력되니

다음과 같이 적으면 된다.

$(document).ready(function () {
    showReview();
});
function showReview() {
    $.ajax({
        type: "GET",
        url: "/review",
        data: {},
        success: function (response) {
            let reviews = response['all_reviews']
            for (let i = 0; i < reviews.length; i++){
                let title = reviews[i]['title']
                let author = reviews[i]['author']
                let review =reviews[i]['review']

                let temp_html = `<tr>
                                       <td>${title}</td>
                                       <td>${author}</td>
                                       <td>${review}</td>
                                  </tr>`
                $('#reviews-box').append(temp_html)
            }
        }
    })
}

let reviews에 response['all_reviews']를 받아온 후 for문을 통해 각 리뷰내용(temp_html)을 정리해서 출력하게 담아주려한다.

 

temp_html에 담은 후 reviews-box 안에 리뷰내용을 append로 담아주면 끝이다.

 

 

전체 페이지 샷

 

리뷰 작성해보기

 

저장 완료!
방금 적은 리뷰가 맨 밑에 출력된다.