会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132359个问题
Python 全系列/第五阶段:数据库编程/redis 751楼
Python 全系列/第五阶段:数据库编程/mysql的使用 752楼
Python 全系列/第五阶段:数据库编程/python操作mysql(旧) 753楼
Python 全系列/第五阶段:数据库编程/MySQL数据库的使用 754楼

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("登录失败")

老师,您好,报这个是什么意思啊。image.png

Python 全系列/第五阶段:数据库编程/项目-音乐播放器-旧 755楼
Python 全系列/第五阶段:数据库编程/MySQL数据库的使用 756楼

image.png

Python 全系列/第五阶段:数据库编程/MySQL数据库的使用 757楼
Python 全系列/第五阶段:数据库编程/项目-音乐播放器-旧 758楼
Python 全系列/第五阶段:数据库编程/MySQL数据库的使用 760楼
Python 全系列/第五阶段:数据库编程/mysql的使用 761楼

image.png

Python 全系列/第五阶段:数据库编程/MySQL数据库的使用 764楼
Python 全系列/第五阶段:数据库编程/MySQL数据库的使用 765楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637