jsonify-04/21

호호빵·2022년 4월 21일
0

04.20

return jsonify 할 때 list 형식으로 넣기

@app.route('/api/mainpage', methods=['GET'])
def user_nick():
    userinput = list(db.users.find())

    userDataList = []

    riotData = riotapi.RiotApi()

    for user in userinput:
        userData = {}
        userData['userData'] = riotData.getUserRankInfo(user['userName'])
        userData['userName'] = user['userName']
        userDataList.append(userData);

    return jsonify(userDataList)

라이엇페이지에서 받은 username과 db의 user의 username 데이터를 받아
리스트 형식으로 나타내기
(x)





22.04.22 추가
리스트라도

return jsonify({'userDataList':userDataList})

방식으로 넘겨줘야 json 방식으로 리스트 그대로 받을 수 있다.

최종


# app.py 
@app.route('/api/mainpage', methods=['GET'])
def user_nick():
    userinput = list(db.users.find())

    userDataList = []

    for user in userinput:
        userData = {}
        riotData = riotapi.RiotApi(user['userName'])
        userData['userData'] = riotData.getUserRankInfo()
        userData['userName'] = user['userName']
        userDataList.append(userData);

    return jsonify({'userDataList':userDataList})


# html
<script>
        $(document).ready(function () {
                user_nick();
            });
            function user_nick() {
                $.ajax({
                    type: "GET",
                    url: "/api/mainpage",
                    data: {},
                    dataType: "json",
                    success: function (response) {
                        let user = response['userDataList']
                        for (let i = 0; i < user.length; i++) {
                            let userName = user[i]['userName'];
                            let tier = user[i]['userData'][0]['tier'];
                            let rank = user[i]['userData'][0]['rank'];

                            let temp_html = `<div class="card text-center" style="width: 18rem;">
                                                  <img class="card-img-top" src="../static/image/${tier}.png" alt="Card image cap">
                                                  <div class="card-body">
                                                      <h5 class="card-title" style="text-align:center">${tier} ${rank}</h5>
                                                      <h5 class="card-title" style="text-align:center">${userName}</h5>
                                                      <a href="http://127.0.0.1:5000/userinfo?userName=${userName}" class="btn btn-primary" style="text-align:center">더 알아보기</a>
                                                  </div>
                                              </div>`
                            $('#cards-box').append(temp_html)
                            }

                        }
                })
            }
    </script>


profile
하루에 한 개념씩

1개의 댓글

comment-user-thumbnail
2022년 4월 22일

늦게 참여하셨는데도, 너무 잘해주고 계십니다!!ㅋㅋ 같이 성장해보아요~

답글 달기