from dbutie import Mydb
class MyService():
def __init__(self):
self.user = None
def login(self,uname,password):
sql = "select * from t_user where uname=%s and password=%s"
user = Mydb().query_one(sql,uname,password)
if user:
self.user = user
return True
else:
return False
def add_music(self,files):
for f in files:
start = f.rfind("/")+1
end = f.rfind(".mp3")
music_name = f[start:end]
#根据歌名查询数据库是否存在同样歌曲
sql = "select * from t_music where music_name=%s"
music = Mydb().query_one(sql,music_name)
if music:
#查询关联表t_list 该用户是否添加了这首歌
sql = "select * from t_list where uid=%s and uid=%s"
t_list = Mydb().query_one(sql,music[0],self.user[0])
if not t_list:
sql = "insert into t_list(mid,uid) values(%s,%s)"
Mydb().exeMDL(sql,music[0],self.user[0])
else:
#将音乐保存到t_music里面
sql = "insert into t_music(music_name,path) values(%s,%s)"
mid = Mydb().exeDML(sql,music_name,f)
#用户选择的音乐保存到t_list
sql = "insert into t_list(mid,uid) values(%s,%s)"
Mydb().exeDML(sql,mid,self.user[0])
import pymysql
class Mydb():
config = {
"host":"127.0.0.1",
"user":"root",
"password":"199759guo",
"db":"music_project",
"charset":"utf8"
}
def __init__(self):
self.connection = pymysql.connect(**Mydb.config)
self.cursor = self.connection.cursor()
#插入,修改,删除数据
def close(self):
if self.cursor:
self.cursor.close()
if self.connection:
self.connection.close()
def exeDML(self,sql,*args):
try:
#执行sql
count = self.cursor.execute(sql,args)
id = self.connection.insert_id()
#提交事务
self.connection.commit()
return id
except Exception as e:
print(e)
if self.connection:
self.connection.rollback()
finally:
self.close()
def query_one(self,sql,*args):
try:
#执行sql
self.cursor.execute(sql,args)
#获取结果集
return self.cursor.fetchone()
except Exception as e:
print(e)
finally:
self.close()
def query_all(self,sql,*args):
try:
#执行sql
self.cursor.execute(sql,args)
#获取结果集
return self.cursor.fetchall()
except Exception as e:
print(e)
finally:
self.close()
from MyService import MyService
import tkinter
from tkinter.filedialog import askopenfilenames
class PlayWindow:
def __init__(self,myService):
self.myService = myService
def impMusoc(self,event):
print("导入了音乐按钮")
#打开磁盘选择音乐
files = askopenfilenames(filetype=(["mp3","*.mp3"],))
#导入音乐,将选择的音乐保存到数据库
self.myService.add_music(files)
def playMusic(self,even):
print("点击了音乐按钮")
def deleteMusic(self,even):
print("删除了音乐")
def showWindow(self):
#显示窗口
top = tkinter.Tk()
#添加按钮
play_button = tkinter.Button(top,text="播放")
imp_button = tkinter.Button(top,text="导入音乐")
delete_button = tkinter.Button(top,text="删除")
play_button.grid(row=0,column=0,padx=5,pady=5)
imp_button.grid(row=0,column=2,padx=5,pady=5)
delete_button.grid(row=0,column=4,padx=5,pady=5)
# 添加列表
listbox = tkinter.Listbox(top)
listbox.grid(row=1,column=0,padx=5,pady=5,columnspan=9)
#给按钮添加事件
imp_button.bind("<ButtonRelease-1>",self.impMusoc)
play_button.bind("<ButtonRelease-1>",self.playMusic)
delete_button.bind("<ButtonRelease-1>",self.deleteMusic)
top.mainloop()
if __name__ == "__main__":
uname = input("请输入用户名:")
password = input("请输入密码:")
myservice = MyService()
if myservice.login(uname,password):
print("登录成功")
playwindow = PlayWindow(myservice)
playwindow.showWindow()
else:
print("登录失败")
老师,您好,报这个是什么意思啊。