from flask import Flask, render_template, make_response
import mysql.connector
from openpyxl import Workbook
app = Flask(__name__)
# MariaDB 연결 설정
db = mysql.connector.connect(
host="localhost",
user="your_username",
password="your_password",
database="your_database"
)
@app.route('/download_excel')
def download_excel():
# 쿼리를 실행하여 데이터 가져오기
cursor = db.cursor()
query = "SELECT * FROM your_table"
cursor.execute(query)
result = cursor.fetchall()
# 워크북 및 워크시트 생성
wb = Workbook()
ws = wb.active
# 헤더 추가
headers = [i[0] for i in cursor.description]
ws.append(headers)
# 데이터 추가
for row in result:
ws.append(row)
# 응답 객체 생성
response = make_response()
# 엑셀 파일 저장
response.headers['Content-Disposition'] = 'attachment; filename=data.xlsx'
wb.save(response)
# 연결과 커서 닫기
cursor.close()
db.close()
return response
if __name__ == '__main__':
app.run()
댓글