brunch

매거진 개발일지

You can make anything
by writing

C.S.Lewis

by yurikim Dec 25. 2022

기상청 오픈API 활용해서 날씨안내 웹서비스 만들기 6

pythonanywhere에서 app.py reload 하기

파이썬 애니웨어에서 파일을 업로드하고 잘 돌아가는걸 확인하고나서 콧노래부르며 잠들었는데 다음날 들어가보니 데이터가 어제 그대로 멈춰있었다. 이게뭔가 싶어서 보니 reload가 웹상에서 수동으로 되게끔 되어있었다. 한번 로드되고나면 그 후로는 데이터가 넘어오지않고 로드된 데이터를 index에서 뿌리는 일만 하고 있었다. 


아니 실시간 날씨정보인데 데이터를 그렇게 받아오면 어쩔래미? 어제날씨봐서 뭐하냐고요 ...

아니가 없으면 말을 못하는 편


암튼간 모르면 구글에 검색 ㄱ ㄱ  pythonanywhere reload app.py 검색하면 원래 엄청 많은 결과가 떠야하는데 그렇지 않았다. 다들 쉽게 해결한 문제인데 나만... 못하고 있구나. 대충 영어쏼라쏼라 결과를 해석해보니 api가 있어서 그걸로 하면된단다.


요기가면 내 api 토큰이 나오고 이걸로 예시 명령어 짜둔것도 다 볼 수있었다. 복붙의 달인이니까 나는 할 뚜이따...암튼 

https://help.pythonanywhere.com/pages/API

여기가면 파이썬애니웨어 api활용방법이 나옴. 약간 기상청에서 보던 그런표가 나옴...하지만 쓸 줄모름... 구글에서 검색결과 나온걸로 활용함


https://www.pythonanywhere.com/forums/topic/27634/



import requests username = "your username"
api_token = "your api token" domain_name = "your domain name"

response = requests.post(     'https://www.pythonanywhere.com/api/v0/user/{username}/webapps/{domain_name}/reload/'.format(         

username=username, domain_name=domain_name     ),     
headers={'Authorization': 'Token {token}'.format(token=api_token)} ) 

if response.status_code == 200:     print('reloaded OK') 
else:     print('Got unexpected status code {}: {!r}'.format(response.status_code, response.content))


이렇게 하면 리로드가 된다고 했다. 아직 확인 못해봄

이것만 확인함 ㅋㅋ 진짜 리로드 됐는지는 확인못하고 일단 기록하기 위해 남김.




이거 테스트하는 와중에도 데이터문제가 아주 많았다. 구문을 대충 짜둔 탓이었다. 대충 45분 기준으로 잘라서 이러면 30분꺼 저러면 00분꺼~ 아직 예보 없으니까 한시간 뺀걸 기준시간으로 잡자~ 이렇게 짜놨는데 00시같은 경우에 빼지지 않는다거나 시간이 1단위로 떨어질경우 기준시간이 시간2자리 분 2자리 총 4자리가 나와야하는데 결과값이 3자리만 나온다거나 하는 문제가 발생했다. 살짝 ... 나는 할 수없는 영역이라는 생각에 막막했다가 짜집기로 대충 추가했다 시간이 10보다 작으면 앞에다가 "0"붙여라 뭐이런식으로....


이제 4자리로 잘 뜨는데 문제는 서버에서 올린게 확인이 어렵다.

제가 뭘 잘못한걸까요...이래서 이것저것 다 확인못해봄. 자고 일어나서 확인해야지...

어젠가도 해결책 못찾아서 이렇게 두고 디자인이나 수정하자고 시작했다가 아예 다른 디자인으로 바꾸게 되었당...마퀴가 엄청 써보고싶어서 고생고생을 했는데 다시보니 촌스럽고 별로고 모바일 호환성도 생각해야하는데 진짜 대환장으로 깨져서 나오기도했고... 그래서 그냥 날씨 텍스트를 움직이는 이미지로 만들어서 넣었다. 첨에는 webm 쓰면 된다고했는데 아이폰 호환안됨... 그래서 apng로 넘겨놨는데 드래그앤드랍으로 저장되는게 조금 별로다. 그거 막는방법 찾아가지고 적용해야지.


물론 sunny만 해둬서 다른것도 다 그려야함... 진짜 리로드 잘 되고나면 아마 그거 그리는거만 해서 css 적용하면 진짜 끝이다. 



하면서 느낀건데 주제선정이 중요하다. 생각보다 많은 날씨가 맑음이더라. 분명 흐린날도 많았더거같은데 인지를 못할뿐이지 맑은 날이 많아서 (미먼은 계산안되니까) sunny만 주구장창 띄워질 가능성이 높다. 결국 내가 열심히 데이터 가져온걸 누군가에게 이거봐 데이터를 연동해서 맑음! 흐림! 을 알려줘... 라고 보여주기엔 흐림이 되거나 눈이오거나 비가오는 상황까지 기다려야 한다는 것이다. 온도만 잘 나오는것으로도 나는 감사한 일이지만 (지금 그게 안나와서 문제니까...)


담에 또 데이터 활용 공부를 하게된다면 좀 즉각적으로 변화를 감지할 수 있는 그런 데이터를 써야겠다고 생각했다. 예를들어 실시간으로 무엇인가의 위치나 개수 성질을 보여준다던가 날씨로 따지자면 잘바뀌는 수치를 활용한 걸로 해야겠다고 다짐했다. 아직 css도 안끝나고 리로드 되는지도 확인못했기때문에... 7까지 쓰겠구먼.... 제발 다음엔 마지막 일지가 되길 ......

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari