Blog

[Flask] Flask framework 미니프로젝트(project fan) 10 (Backend 서울시 현재 날씨 OpenAPI 보기 기능 구현)

Author
Summary
Backend 서울시 현재 날씨 OpenAPI 보기 기능 구현
Category
Study
Tags
Python&Flask
Favorite
Memory Date
2023/07/18
Progress Status
Done
Cross Reference Study
Related Media
Related Thought
Related Lessons
tag
날짜
작성자
진행상황
진행 전
태그구분
5 more properties
서울의 실시간 날씨 정보 OpenAPI 데이터를 받아와서 HTML 헤더 부분에 표시해주려 한다.

1. 데이터 명세

Contents :
현재 온도 : 'temp': temp / from URL list
현재 기후 : 'icon': icon / from URL list

2. 기능 구현을 위한 script.js 부분 수정 및 작성

OpenAPI 기본 골격
// [Temp Read]function set_temp() { fetch("<URL>").then((res) => res.json()).then((data) => { console.log(data) }); }
JavaScript
복사
URL에 위 OpenAPI URL을 입력(요청)하면 해당 URL 서버에서 jsonify()를 통해서 Json 형식으로 변환된 서울시 현재 날씨 데이터를 반환받게 된다.(응답 전송 단계는 해당 URL 서버가 한다.)
해당 데이터는 첫 번째 then() 절의 res 인자값으로 들어감
JavaScript로 다시 돌아와서 첫 번째 then()으로 들어간 res는 *response.json()에 의해 Promise 객체로 변환
해당 객체 데이터는 data라는 변수에 담겨있다.
이미 list 형태로 들어와서 data로부터 바로 key값을 조회하면 value를 얻을 수 있다.
'temp', 'icon' key의 value들을 원하는 데이터인 temp, icon(url형태) 변수에 할당하고
각 변수들을 HTML에 각 id위치의 내용을 empty()로 비워준 뒤 append()로 대체시켜 넣어줌
// [Temp Read]function set_temp() { fetch("http://spartacodingclub.shop/sparta_api/weather/seoul").then((res) => res.json()).then((data) => { console.log(data) // 변수에 데이터 담기let temp = data['temp'] let icon = data['icon'] // HTML태그(id)에 각 데이터 비우기 후 삽입 $('#temp').empty().append(temp); $('#icon').empty().append("<img src='"+icon+"'>"); }); }
JavaScript
복사

3. 테스트

Flask 서버가 실행 중인 상태
브라우저에서 localhost:5001 URL로 접속
웹 페이지 로드 직후( (document).ready() 즉시 실행 )
document.ready에 포함된 show_temp()실행되어 위 과정 진행
OpenAPI로 응답받은 데이터 가 그대로 대체되어 변경 View 페이지에 나타남
현재기온: 26.66도
날씨 아이콘