파이썬-실습(5) HTML에 Flask를 통해 데이터 값을 삽입

파이썬-실습(5) HTML에 Flask를 통해 데이터 값을 삽입

저는 현재 아래 사진처럼 서울의 구마다 날씨를 기상청에서 받아와 표현해주는 페이지를 만들었습니다.

쉬운 코딩이라고 생각하실수도 있지만 맨 처음 지식이 전무하던 상태에서

데이터를 파이썬 Flask에서 HTML로 넘기는것이 많이 어려웠습니다.

그렇기에 제가 했던 방식이 나중에 참고되거나 도움이될까봐 작성합니다.

@app.route('/weather', methods=['GET', 'POST']) def weather_gui(): global select_date # select_date 변수에 원하는 날짜값을 담고 추후에 사용할 기회가 있기에 전역변수로 생성했습니다. ctime, count = count_time() # ctime = 원하는 시간간격들을 설정하기위한 변수, count = ctime의 개수입니다. select_date = func.nowtime() # nowtime은 현재 시간을 알려주는 함수입니다. weather = set_data_for_weather(select_date) # weather에는 사진에 있는 각 구별로 온도와 강수량, 하늘상태를 담고 있는 리스트입니다. return render_template('weather.html', data = weather, date = select_date, time = ctime, count = count)

def count_time(): flag = 2 count = 0 ctime = [] date = set_date_for_api() # 시간을 api에 맞게 설정해주는 단순한 함수입니다. date = date[:-2] + '00' time_data = func.find_item(mongo, {"local":'강남구', 'date':{"$gte":date}}, "alarm", "weather") # db에서 local이 강남구며 위의 변수 date와 크거나 같은값을 찾아서 time_data에 담습니다. for i in time_data: # 사용자들에게 표시될 시간간격을 3시간으로 설정했습니다. if flag == 2: ctime.append(i) count += 1 flag = 0 else: flag += 1 return ctime, count

def set_data_for_weather(time): count = 0 weather = [{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}] # 각 구의 기상정보를 담을 딕셔너리를 리스트안에 만들어줍니다. dict_data = func.find_item(mongo, {"date":time}, "alarm", "weather") # 각 구별로 date가 변수인 time에 맞는 data들을 담고 저장합니다. for i in dict_data: j = i['local'] if j[-1] == '구': weather[count] = i count += 1 else: break return weather

개인 프로젝트를 진행하면서 지금 코드들을 리뷰했을때 되게 어색하고 미흡한 부분이 많다고 생각이 듭니다.

그래도 필요한 부분들과 저와 같은 고민을 하신 분들에게 조금이나마 도움이 되면 좋겠습니다.

from http://cleaning-toolbox.tistory.com/56 by ccl(A) rewrite - 2021-12-14 22:27:40