Project/감정분석과 노래 추천
Emotions and Music 6
JooJaeHwan
2022. 7. 3. 01:01
728x90
반응형
코드
- Flask에 MySQL 연결
from flask import Flask, render_template, request, session, redirect, url_for
import pandas as pd
from datetime import timedelta
from flaskext.mysql import MySQL
import keras
from pyparsing import col
from Model import Tfidf_padding, model_prediect, cosine
mysql = MySQL()
app = Flask(__name__)
app.config['MYSQL_DATABASE_USER'] = '유저'
app.config['MYSQL_DATABASE_PASSWORD'] = '비밀번호'
app.config['MYSQL_DATABASE_DB'] = 'DB이름'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
app.config['MYSQL_DATABASE_PORT'] = 3306
app.secret_key = '9de85b1db330eddaf2a3e861d23db198baafee41a968f8365f4f9acf60fb2e09'
app.config["PERMANENT_SESSION_LIFETIME"] = timedelta(minutes=5) # 5분후 자동 로그아웃
mysql.init_app(app)
@app.route('/')
@app.route('/index')
def index():
if not session.get('userid'):
return render_template('index.html'), 200
#로그인 세션정보가 없을 경우
else:
userid = session.get('userid')
return render_template('index.html', userid=userid)
@app.route('/info')
def info():
return render_template('info.html'), 200
@app.route('/result', methods=["GET","POST"])
def result():
song = request.form.get('song')
print(song)
name = session.get('username')
text = request.form.get('text')
padded = Tfidf_padding(text)
index = model_prediect(padded)
conn = mysql.connect()
cursor = conn.cursor()
cursor.execute("SELECT DISTINCT * FROM Music.music AS m ;")
music = cursor.fetchall()
music = pd.DataFrame(music, columns=["artist_name", "song_name", "lyrics"])
music_list = cosine(name, music, text)
return render_template('result.html', name=name, index=index, music_list=music_list), 200
@app.route('/register', methods=['GET','POST'])
def register():
return render_template('register.html'), 200
@app.route('/login', methods=['GET','POST'])
def login():
if request.method=='GET':
return render_template('login.html')
else:
userid = request.form.get('userid')
password = request.form.get('password')
conn = mysql.connect()
cursor = conn.cursor()
sql = "SELECT userid, user_name FROM user_info WHERE userid = %s AND password = %s"
value = (userid, password)
cursor.execute("set names utf8")
cursor.execute(sql, value)
data = cursor.fetchall()
cursor.close()
conn.close()
if data != (): # 쿼리 데이터가 존재하면
session['userid'] = userid # userid를 session에 저장한다.
session['username'] = data[0][1]
return redirect('/index')
else:
return 'Dont Login' # 쿼리 데이터가 없으면 출력
@app.route('/logout', methods=['GET'])
def logout():
session.pop('userid', None)
return redirect('/index')
@app.route('/loading', methods=['GET', 'POST'])
def loading():
return render_template('loading.html'),200
if __name__ == '__main__':
app.run('0.0.0.0', port=5000, debug=True)
참고
[Python Flask] 웹 페이지 만들기 06 - MySQL 연동하기(DB 클래스 생성)
이전 포스트에서는 MySQL을 연동하는 방법을 알아보았습니다. 하지만 이 방법으로는 나중에 추가적인 기능을 개발하고, 또 다시 연동하는 데 있어서 매우 어려움이 있습니다.. 즉, 계속해서 데이
kkamikoon.tistory.com
728x90
반응형