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>
늦게 참여하셨는데도, 너무 잘해주고 계십니다!!ㅋㅋ 같이 성장해보아요~