from flask import Flask, render_template
import pymysql
app = Flask(__name__)
@app.route('/')
def index():
db_conn = pymysql.connect(host='localhost', user='your_mysql_user',
password='your_mysql_password', database='WavveProj',
autocommit=True, cursorclass=pymysql.cursors.DictCursor)
with db_conn:
db_cursor = db_conn.cursor()
db_cursor.execute("SELECT * FROM users")
users = db_cursor.fetchall()
db_conn.close()
return render_template('html/index.html', users=users)
if __name__ == "__main__":
app.run(debug=True)
내 프로젝트(기존에 프론트 작업하던 그곳)에 app.py로 저장한 해당 파일을 가져옴
pip install flask
pip install pymysql
from flask import Flask, render_template
import pymysql
app = Flask(__name__)
@app.route('/')
def index():
db_conn = pymysql.connect(host='여기수정', user='여기수정', password='여기수정', database='여기수정', autocommit=True, cursorclass=pymysql.cursors.DictCursor)
with db_conn:
db_cursor = db_conn.cursor()
db_cursor.execute("SELECT * FROM 테이블이름으로 수정")
여기수정 = db_cursor.fetchall()
return render_template('html/index.html', 여기수정=여기수정)
if __name__ == "__main__":
app.run(debug=True)
'여기수정' 부분에 본인 데이터 관련 정보를 넣으면 됨.
export FLASK_APP=플라스크파일이름.py
export FLASK_ENV=development
flask run
터미널에서 순서대로 입력한다.
* Serving Flask app 'server/app.py'
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on http://127.0.0.1:5000
MySQL 데이터베이스에 연결하지 못해서 발생했다고 한다.
"ERROR in app: Exception on / [GET] Traceback (most recent call last)"
"Can't connect to MySQL server on 'localhost:3306"
그래서 try / except 구문을 추가해서 터미널에 에러를 띄워보기로 했다
try:
db_conn = pymysql.connect(host='127.0.0.1', user='root', password='비밀번호', database='WavveProj', autocommit=True, cursorclass=pymysql.cursors.DictCursor)
with db_conn:
db_cursor = db_conn.cursor()
db_cursor.execute("SELECT * FROM Banner")
banner_data = db_cursor.fetchall()
except Exception as e:
print("MySQL에 연결 중 오류 발생:", e)
http://127.0.0.1:5000로 접속하면 기존에 작업해둔 프론트 부분이 띄워져야 되는데 500 에러가 나왔다.
27.0.0.1/:1 Failed to load resource: the server responded with a status of 500 (INTERNAL SERVER ERROR)
Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
import logging
import sys
app.logger.addHandler(logging.StreamHandler(sys.stdout))
app.logger.setLevel(logging.ERROR)
코드를 살펴보면 db_conn.close()를 두 번 호출
그래서 코드를 지우고 다시 실행했더니, 또 오류가 나서 로그를 확인했다.
작업 폴더에서 flask run을 안했다.
1시간동안 다시 삽질을 했다.
아무튼 !
[원래코드👎]
[수정된 코드👍]
pip install cryptography
def index():
banner_data = [] ## 추가
그래서 최종화면을 gif로........😳
코드는 깃허브 !
구조: 네비바, 메인(배너섹션, 컨텐츠색션1, 컨텐츠섹션2, ...), 푸터
배너 슬라이드 (바닐라 JS로 완성)
켄텐트섹션 슬라이드 (바닐라 JS로 완성)
데이터베이스 설계(ERD)
배너 컨텐츠 데이터연결 (Mysql & flask)
읽다가 중간에 울뻔했네요.. 대단하십니다.
노력하는 모습 보고 배워갑니다!