mysql에 적재된 data를 flask 웹에 띄우기 (+ 개선사항)
2023. 9. 5. 13:38ㆍ학습/Data Engineering
from flask import Flask, render_template
from sqlalchemy import create_engine
import pandas as pd
app = Flask(__name__)
# MySQL 서버 정보 설정
host="localhost"
user="testuser"
password="1234"
database="TESTDB"
# SQLAlchemy 엔진 생성
engine_url = f'mysql+pymysql://{user}:{password}@{host}/{database}'
engine = create_engine(engine_url, echo=True)
@app.route('/')
def home():
# 쿼리 실행 및 결과 DataFrame으로 변환
query = "SELECT * FROM t3_table"
df = pd.read_sql(query, engine)
return render_template('home.html', tables=[df.to_html(classes='data')], titles=df.columns.values)
if __name__ == '__main__':
app.run(debug=True)
<!DOCTYPE html>
<html>
<head>
<title>Home Page</title>
</head>
<body>
{% for table in tables %}
{{table|safe}}
{% endfor %}
</body>
strava api를 이용해 data를 받아
pandas를 이용해 필터링과 df화해서 mysql에 적재하였다.
그 mysql에 적재된 데이터를 flask 웹에 보내주기
개선사항
한페이지에 모두 불러내서 확대, 축소시 시간이 오래걸림
->
프론트에서 해결방법
1. 페이지네이션
(지금 위의 코드에서는 mysql의 TESTDB라는 DB의 t3_table의 데이터를 모두 한번에 가져오기때문에 오래 걸린다고 생각.
페이지네이션으로 1~100개 만 조회한다던지,
조건문 쿼리를 선택해서 보낼수 있는 입력창을 만든다던지,
-> 웹에 좀 더 집중한 방법 이라고 생각.)
백단
1. 하둡 에코시스템 구축(지금 공부의 목표)
728x90
'학습 > Data Engineering' 카테고리의 다른 글
kafka 작동원리, 활용, 장단점 (2) | 2023.09.05 |
---|---|
strava api를 이용해 운동 데이터 mysql에 적재하기 -1 (2) | 2023.09.05 |
ubuntu에 PostgreSQL 설치 -1 (0) | 2023.09.01 |
간단한 ML api server 띄우기 -2 hello flask (0) | 2023.08.30 |
간단한 ML api server 띄우기 - 1 환경설정(pyenv) (0) | 2023.08.30 |