본문 바로가기
스파르타 코딩 웹개발 종합반/4주차

4-13 [스파르타피디아] - GET 연습(보여주기)

by 율✌️ 2022. 5. 21.
<<<미션>>>
화면을 새로고침 했을 때, DB에 저장된 리뷰가 화면에 올바르게 나타나는지 확인

 

1. 요청 정보 : URL= /mars, 요청 방식 = GET
2. 클라이언트(ajax) → 서버(flask) : 없음
3. 서버(flask) → 클라이언트(ajax) : 전체 영화를 보내주기

 

 

먼저, 클라이언트와 서버 확인하기

서버코드-app.py

@app.route("/mars", methods=["GET"])
def mars_get():
    return jsonify({'msg': 'GET 연결 완료!'})

클라이언트 코드-index.html

$(document).ready(function () {
    show_order();
});
function show_order() {
    $.ajax({
        type: 'GET',
        url: '/mars',
        data: {},
        success: function (response) {
            alert(response['msg'])
        }
    });
}

 

서버만들기_ 받을 것 없이 orders 에 주문정보를 담아서 내려주기만 하면 됨

@app.route("/movie", methods=["GET"])
def movie_get():
    movie_list = list(db.movies.find({},{'_id':False}))
    return jsonify({'movies':movie_list})

클라이언트 만들기_ 응답을 잘 받아서 for 문으로 붙여주기

function listing() {
    $('#cards-box').empty()
    $.ajax({
        type: 'GET',
        url: '/movie',
        data: {},
        success: function (response) {
            let rows = response['movies']
            for(let i = 0; i < rows.length; i++) {
                let image = rows[i]['image']
                let title = rows[i]['title']
                let desc = rows[i]['desc']
                let star = rows[i]['star']
                let comment = rows[i]['comment']

                let star_image = '⭐'.repeat(star)

                let temp_html = `<div class="col">
                                    <div class="card h-100">
                                        <img src="${image}"
                                             class="card-img-top">
                                        <div class="card-body">
                                            <h5 class="card-title">${title}</h5>
                                            <p class="card-text">${desc}</p>
                                            <p>${star_image}</p>
                                            <p class="mycomment">${comment}</p>
                                        </div>
                                    </div>
                                </div>`

                $('#cards-box').append(temp_html)
            }
        }
    })
}