on
2.1) 서울시 지가 선형회귀모델 프로젝트 개발 Form
2.1) 서울시 지가 선형회귀모델 프로젝트 개발 Form
1. main.html에 Search 데이터를 입력할 Form 만들기
about 으로 지정되어있는 section에 아래 코드처럼 form을 추가하고 수정한다.
Seoul Landprice Predict Model The all data is obtained from 서울시 개별공시지가 정보 through their OpenAPI. ex) 광진구 화양동 355-15 2020년 지역구 법정동 본번 부번 기준연도 Research
2. Server에서 form 데이터 받기
우선 searchForm에서 데이터를 받아온 후, result.html로 보내보겠다.
# result.py from flask import Flask, Blueprint, render_template, request import requests from bs4 import BeautifulSoup import pandas as pd bp = Blueprint('result',__name__,url_prefix='/') # searchForm 데이터를 받아서 다시 result.html에 전송함 @bp.route('/searchForm', methods =['POST']) def search_form(): if request.method == 'POST': data = request.form else : data = {} location = [] price = [] year = [] for i in range(int(data['year'])-20,int(data['year'])+1): # 20년치 데이터를 불러온다. api = f"http://openapi.seoul.go.kr:8088/{본인API}/xml/IndividuallyPostedLandPriceService/1/5/{data['gu']}/{data['dong']}/{data['first_num']}/{data['second_num']}/1/{i}" page = requests.get(api) soup = BeautifulSoup(page.content, 'html.parser') if soup.message.contents[0] == "해당하는 데이터가 없습니다." : print(f"{i}년 정보 없음") continue # list들에 데이터 추가 location.append(data['gu']+' '+data['dong']+' '+data['first_num']+'-'+data['second_num']) price.append(soup.jiga.contents[0]) year.append(i) # print(soup.jiga.contents[0]) # pandas dataframe화 dic = {'Location':location,'Price':price,'Year':year} df = pd.DataFrame(dic).sort_values(by=['Year'],ascending=False) # df를 HTML 테이블 테그로 변환 df_html = df.to_html(escape=False, justify='center') return render_template('result.html', data=data, df_html=df_html)
3. Jinja 템플릿을 이용해서 html에서 불러오기 및 css 조정
Seoul Landprice Predict Model Result Price Prediction for next year {{df_html|safe}}
반응형
from http://millennials.tistory.com/136 by ccl(A) rewrite - 2021-10-07 22:26:24